在.Net平台开发Wap的一些记录

一年前,用VS2005做了成绩查询系统和两个小的管理系统,当时时间比较紧没有总结,最近又看了一些这方面的开发资料,稍做记录分享一下,希望能与大家交流。

一,WAP是什么

     WAP(Wireless Application Protocol)即无线应用协议,WAP使移动Internet有了一个通行的标准,其目标是将Internet的丰富信息及先进的业务引入到移动电话等无线终端之中。WAP定义可通用的平台,把目前Internet网上HTML语言的信息转换成用WML(Wireless Markup Language)描述的信息,显示在移动电话的显示屏上。WAP只要求移动电话和WAP代理服务器的支持,而不要求现有的移动通信网络协议做任何的改动,因而可以广泛地应用于GSM、CDMA、TDMA、3G等多种网络。wap页面的语言为wml,WML支持文字和图片显示,内容组织上,一个页面为一个Card,而一组Card则构成一个Deck。当使用者向服务器提出浏览要求后,WML会将整个Deck发送至客户端的浏览器,使用者就可以浏览Deck里面所有Card的内容,而不需要从网络上单独下载每个Card。

标准的wml:

代码
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml"
>
<wml>
<card id="HTML" title="HTML Tutorial">
<p>
Our HTML Tutorial is an award winning 
tutorial from W3Schools.
</p>
</card>
<card id="XML" title="XML Tutorial">
<p>
Our XML Tutorial is an award winning 
tutorial from W3Schools.
</p>
</card>
</wml>

 

下方是在VS中生成的代码:

 

代码
<?xml version='1.0'?> 
<!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" /> 
</head> 
<card> 
<onevent type="onenterforward"><refresh><setvar name="txtUserName" value="" /><setvar name="txtPassWord" value="" /></refresh></onevent> 
<p>用户名:<input name="txtUserName" /> 
<br/> 
密码:
<input name="txtPassWord" /> 
<br/> 
<anchor title="登录">登录<go href="Default.aspx" method="post"><postfield name="__EVENTTARGET" value="LoginCommand" /><postfield name="txtUserName" value="$(txtUserName)" /><postfield name="txtPassWord" value="$(txtPassWord)" /></go></anchor></p></card> 
</wml>

 

 

      早些年手机上网能够查看到的内容远没有现在这么丰富多彩,相信早些年用手机的朋友都知道,基本上都是文字,那是wap1.2版本,后来由于手机的硬件升级,逐步向掌上电脑的思想靠近,就有了手机操作系统发展,进而有了手机浏览器的发展,现在的ucweb浏览器在线看NBA直播都十分流畅,这个发展进程值得关注。

      和http协议,html用于PC浏览器访问Internet上的资源一样,手机浏览器访问时遵循的是WAP协议,wml语言。由于我们现在的手机浏览器绝大多数已经支持html,所以在做wap开发时会考虑到这个程序的语言问题,下面会说到.net平台开发wap程序的一些简单办法。

二,在.Net平台做wap开发

vs2005中包含了asp.net mobile controls,这些控件可以针对不同的浏览设备输出不同的代码,手机浏览就可以变成wml,PC浏览页面就会生成普通的HTML代码。当然,如果你希望程序一定要在客户端以wml形式存在,可以在webconfig中加上下列配置:

 

代码
<browserCaps>
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<use var="HTTP_USER_AGENT"/>
preferredRenderingType 
= "wml11"
preferredRenderingMime 
= "text/vnd.wap.wml"
preferredImageMime 
= "image/vnd.wap.wbmp"
</browserCaps>

 

 

posted @ 2010-05-25 10:59  翁玉礼  阅读(6885)  评论(4编辑  收藏  举报