WAP開發中的一些細節及經驗

1)wap多選框
<card id="phones" title="組信息">
<do type="prev" name="Prev" label="Back">
<go href="meeting.wml"></go></do>
<do type="accept"><go href="servlet_wap?serviceID=0124">
<postfield name="scity" value="1"/>
<postfield name="members" value="$members"/>
</go></do>
<p mode="nowrap">**選擇會議成員**
<select name="members" multiple="true">
<option value="138345657678">88(138345657678)</option>
<option value="1383456576786">88886(1383456576786)</option>
<option onpick="meeting.wml">[返回]</option>
</select>
</p>
</card>
2)wap單選框
<card>
<p>Please choice your favourite Web.<br/>
 <select name="X">
  <option value="S">sina</option>
  <option value="Y">yahoo</option>
 </select>
<p>
</card>
3)有關左右軟按鍵)(由手機瀏覽器自動解析爲menu菜單,在手機的右鍵出現;)
<do type=".options." label="確認" optional="false">
    <go href="/wapapp/servlet_yxtwap?serviceID=0214"/>
  </do>
代表右軟按鍵,一個“確定”按鈕;
<do type=".Accept." label="返回" optional="false">
    <go href="../servlet_yxtwap?serviceID=0201"/>
  </do>
代表左軟按鍵,一個“返回”按鈕;

最好是這樣:
<do type="options" name="Prev" label="返回"><go href="indexmember.wml"></go></do>
<do type="Accept" label="確定">
<go href="/wapapp/servlet_yxtwap?serviceID=0401">
<postfield name="name" value="$name"/>
<postfield name="nick" value="$nick"/>
<postfield name="call" value="$call"/>
</go>
</do>
返回剛纔上頁:
<do type="options" name="Prev" label="返回"><prev/></do>

<do type="options" name="Prev" label="返回"><go href="index.wml"></go></do>
<do type="accept" label="確定">
<go href="/wapapp/servlet_wap" method="post">
<!-- go href="/servlet/wap86test" -->
<postfield name="serviceID" value="0002"/>
<postfield name="phone" value="$(phone:e)"/>
<postfield name="passwd" value="$(passwd:e)"/>
</go>
</do>

4)有關軟連結的友好提示
<a title = "確定" href="announce.wml">網站聲明</a><br/>
加入title屬性,可以在手機的左鍵顯示title裏面所放置的提示語。

"<do type=/"options/" name=/"Prev/" label=/"返回/"><go href=/"index.wml/"></go></do>"+
<do type="options" name="Prev" label="返回"><go href="index.wml"></go></do>

5)ipnut輸入框自動換行
<p mode="nowrap">**姓名暱稱**<br/>
姓名:
<input name="name" tabindex="1" maxlength= "32" />
注意:Ⅰ、p的mode屬性爲nowrap;
Ⅱ、input裏沒有size屬性;

6)<p mode="nowrap">將菜單項顯示在同一行中,而不是分行顯示,如果是文字的話,可以實現滾動文本代替換行文本;
所以
<p mode="wrap">**用戶登錄**<br/>
輸入手機號碼:<br/>
<input name="phone" format="*N" tabindex="1" maxlength="11" size = "11"/><br/>
輸入密碼:<br/>
<input name="passwd" format="*N" tabindex="2" maxlength="6" size = "7"/>
</p>
就可以達到固定頁面的效果;

7)正確的url連接
String strAddressList = WapUtil.gbk2unicode("通訊錄");
WapUtil.encode("通訊錄", strAddressList)

String groupName = request.getParameter("groupname");//(1)
groupName = WapUtil.togbk(groupName); //(2)
String unicgpName = WapUtil.gbk2unicode(groupName); //(3)
WapUtil.encode(groupName,unicgpName) //(4)如果是帶中文參數連接的話,應該這樣做爲參數

8)作爲提交數據的字段碼制信息需要:
下面例子爲將url中取的已經轉碼的中文連接字段做爲提交字段,提交給servlet處理
(1) String groupName = request.getParameter("groupname");
groupName = WapUtil.togbk(groupName); //(1)
(2) String unicgpName = WapUtil.gbk2unicode(groupName);
(3) "<go href=/"servlet_wap?serviceID=0213/" accept-charset=/"GB2312/">/n" +
"<postfield name=/"omgroupname/" value=/"" + unicgpName + "/"/>/n" +
首先將已經encode的url中的連接字段取得,並用gb2312處理;
然後將該已經轉成中文的字段轉成unicode碼制;
最後將該字段放入一個瀏覽器與服務器之間收發信息的字符集類型爲gb2312的提交url,
完成

9)將輸入框中的字段清空
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
</head>
<card id="card1" title="羣呼羣聊">
<onevent type="onenterforward">
<refresh>
<setvar name="mgroupname" value=""/>
</refresh>
</onevent>
<do type="options" name="Prev" label="返回"><go href="/wapapp/servlet_wap?serviceID=0203&groupname=11%B2%BB%B6%ED%B6%F8dd&groupcode=6"></go></do>
<do type="accept" label="確定"><go href="/wapapp/servlet_wap?serviceID=0213" method="get" accept-charset="GB2312">
<postfield name="omgroupname" value="11不俄而dd"/>
<postfield name="groupcode" value="6"/>
<postfield name="mgroupname" value="$mgroupname" />
</go></do>
<p mode="wrap">**修改組**<br/>
輸入新組名:<br/>
<input name="mgroupname" tabindex="1" maxlength="64"/>
</p>
</card>
</wml>
其中<onevent></onevent>這段代碼要放在card後面。

有關於輸入框value值的預定義解決方案:
在card裏面增加newcontext屬性,並且爲true;
如:<card id="card1" newcontext="true" title="test">
copyright本文來自德仔工作室  
發佈了45 篇原創文章 · 獲贊 1 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章