一年前,用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:
<! 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中生成的代码:
<! 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中加上下列配置:
< 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 >