论坛首页 移动开发技术论坛

wap开发中的一些细节

浏览 4349 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-08-06   最后修改:2010-12-09
WAP
1)wap多选框
<card id="phones" title="&#x7ec4;&#x4fe1;&#x606f;">
<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">**&#x9009;&#x62e9;&#x4f1a;&#x8bae;&#x6210;&#x5458;**
<select name="members" multiple="true">
<option value="138345657678">&#x38;&#x38;(138345657678)</option>
<option value="1383456576786">&#x38;&#x38;&#x38;&#x38;&#x36;(1383456576786)</option>
<option onpick="meeting.wml">[&#x8fd4;&#x56de;]</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="&#x786e;&#x8ba4;" optional="false">
    <go href="/wapapp/servlet_yxtwap?serviceID=0214"/>
  </do>
代表右软按键,一个“确定”按钮;
<do type=".Accept." label="&#x8fd4;&#x56de;" optional="false">
    <go href="../servlet_yxtwap?serviceID=0201"/>
  </do>
代表左软按键,一个“返回”按钮;

最好是这样:
<do type="options" name="Prev" label="&#x8fd4;&#x56de;"><go href="indexmember.wml"></go></do>
<do type="Accept" label="&#x786e;&#x5b9a;">
<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="&#x8fd4;&#x56de;"><prev/></do>

<do type="options" name="Prev" label="&#x8fd4;&#x56de;"><go href="index.wml"></go></do>
<do type="accept" label="&#x786e;&#x5b9a;">
<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 = "&#x786e;&#x5b9a;" href="announce.wml">&#x7f51;&#x7ad9;&#x58f0;&#x660e;</a><br/>
加入title属性,可以在手机的左键显示title里面所放置的提示语。

  "<do type=\"options\" name=\"Prev\" label=\"&#x8fd4;&#x56de;\"><go href=\"index.wml\"></go></do>"+
   <do type="options" name="Prev" label="&#x8fd4;&#x56de;"><go href="index.wml"></go></do>

5)ipnut输入框自动换行
<p mode="nowrap">**&#x59d3;&#x540d;&#x6635;&#x79f0;**<br/>
&#x59d3;&#x540d;:
<input name="name"  tabindex="1"    maxlength= "32" />
注意:Ⅰ、p的mode属性为nowrap;
     Ⅱ、input里没有size属性;

6)<p mode="nowrap">将菜单项显示在同一行中,而不是分行显示,如果是文字的话,可以实现滚动文本代替换行文本;
所以
<p mode="wrap">**&#x7528;&#x6237;&#x767b;&#x5f55;**<br/>
&#x8f93;&#x5165;&#x624b;&#x673a;&#x53f7;&#x7801;:<br/>
<input name="phone" format="*N" tabindex="1" maxlength="11" size = "11"/><br/>
&#x8f93;&#x5165;&#x5bc6;&#x7801;:<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="&#x7fa4;&#x547c;&#x7fa4;&#x804a;">
<onevent type="onenterforward">
<refresh>
<setvar name="mgroupname" value=""/>
</refresh>
</onevent>
<do type="options"  name="Prev" label="&#x8fd4;&#x56de;"><go href="/wapapp/servlet_wap?serviceID=0203&amp;groupname=11%B2%BB%B6%ED%B6%F8dd&amp;groupcode=6"></go></do>
<do type="accept" label="&#x786e;&#x5b9a;"><go href="/wapapp/servlet_wap?serviceID=0213"  method="get"  accept-charset="GB2312">
<postfield name="omgroupname" value="&#x31;&#x31;&#x4e0d;&#x4fc4;&#x800c;&#x64;&#x64;"/>
<postfield name="groupcode" value="6"/>
<postfield name="mgroupname"   value="$mgroupname" />
</go></do>
<p mode="wrap">**&#x4fee;&#x6539;&#x7ec4;**<br/>
&#x8f93;&#x5165;&#x65b0;&#x7ec4;&#x540d;:<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">
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics