现在的位置: 首页 > 综合 > 正文

用C#生成WAP页面介绍

2013年01月27日 ⁄ 综合 ⁄ 共 1285字 ⁄ 字号 评论关闭

手机上网越来越普及,手机种类越来越多,要开发一个供手机访问网站并兼容所有不同类型的手机和浏览器是很不容易的,北京师范大学自习室查询平台的手机版最初是直接用ASP.NET实现的,只是用CSS定义成了适合手机屏幕的页面,虽然同学们访问基本没有问题,但是也偶尔会有“不能选择下拉菜单”、“按钮button不能点击”这样的问题,后来想了想,并不是每个手机都能很好的支持HTML和CSS,UCWEB则是经过其第三方代理处理了HTML流,以压缩页面带来流量节省。

  于是我决定用纯WAP的方式实现自习室查询平台,因为老手机即使不支持WAP2.0,但是一定是支持WAP1.1的,即最最传统的WML1.1,虽然现在WAP2.0是趋势,但是无法避免的是总有那么一些浏览器不能很好的支持!

  WAP1.1是十年前的技术了,因为老,所以几乎每个手机都支持,不管是彩屏还是黑白屏,只要能上网,一般都能正确显示,于是开始学习这个虽老但是仍然健壮的语言!

  因为有巩固的XHTML和XML基础,WML1.1学起来非常容易,我直接在W3SHCOOL上看的参考教程,这里就不多说wml语法的细则了,因为http://www.w3school.com.cn/wap/index.asp里写得非常清楚了!

  不太习惯的是WML1.1里可用的标签真的很少,所有文字都要放在段落标记

 

里面,直接编写一个WML文件缺乏动态性(只有少量变量和事件),于是我选择了用ASP.NET页面动态生成WML的方式,即每一次请求,响应ContentType为WML即可,比如我们新建一个WEB窗体index.aspx

 

  在index.aspx中删去除了最上面一行的所有内容,即只剩

 

  然后在index.aspx.cs里设置

Response.ContentType = "text/vnd.wap.wml;charset=UTF-8";

  这样浏览器看到这句话,就知道响应的页面是wml的。接下面需要输出实际的页面内容,每一个wml1.1是一个标准的xml文件,所以在输出的时候一定要遵循xml的语法,一点差错(比如标签没有闭合,标签闭合错位)都不允许。

  输出wml声明:

Response.Write("<?xml version=/"1.0/"?>/r/n");

  输出wml内容:

Response.Write("

Hello Wap1.1

");

 

  这样就能在手机上显示Hello Wap1.1的字样,很简单吧!这样动态生成的好处就是能自由编程,动态显示需要显示的内容!虽然wml1.1已经是陈旧的技术,但是配合强大的C#和ASP.NET或者其他编程语言,还是可以制作出很好的页面的。

  不过,wap2.0是趋势,因为wap2.0和如今的HTML很像,遵循标准的XHTML语法,而且支持CSS样式定义,也支持彩色,目前大部分主流的彩屏手机和浏览器都支持。但是就如我之前所说的一样,科技发展太快,手机不断多样化,所以选择技术的时候的确需要斟酌。新浪、搜狐、百度之类的wap站也分别出了彩板、简版、3G版等等,也是为了支持不同的手机!

抱歉!评论已关闭.