使用.NET进行WAP开发

WAP应用程序结构

首先你拥有一个Web应用,那么集成WAP服务就相当容易。
你不必为原来的业务逻辑进行重新构建,而且如果你Web本身的应用就有分层的,那么扩展到WAP是很方便的。
对于我们目前的应用,我们可以简单的认为是WEB应用的Mobile迁移。更多的是在UI\UE上的调整。

WAP采用什么标准

1.XHTML Mobile 1.0(WAP2.0)
Google Mobile
wap.taobao.com
3g.sina.com.cn

2.WML1.1
3g.qq.com
wap.kong.net
3g.sina.com.cn

对比了一些网站WAP开发。google的Mobile应用都是基于XHTML Mobile1.0,也的确做的很优秀。其他很多WAP网站,都是支持WML1.1 和 XHTML Mobile 双标准的。

采用.NET的封装控件,还是自定义WML标签

.NET中封装了一套移动开发组件。很遗憾在VS2008找不到Mobile开发模板(但支持Mobile开发)。.NET中的移动开发控件,会根据相应 的设备显示不同解析标准。比如发现是PIE访问,.NET自动返回的是XHTML Mobile1.0的标签,而如果是其他的(根据具体设置)可以返回WML的标签。这样的好处是自动根据设备的支持显示对应的标签。从开发的效率和容易度 来说,这样是最方便的。但从WAP站点的适应需求上,可控性自然就下降了。所以最后还是选择了传统的输出WML的方式进行处理。当然.NET也可以采用强 制输出WML的移动方式。请参考这篇文章:
asp.net强制输出WML

WAP的Session问题

Session问题主要原因还是因为Cookie问题,如果一台设备不支持Cookie那么其实Session也是无法使用的。因为Server端最终还 是需要知道,客户端到底请求的是那一个SessionID。从目前的Web程序中,我们也可以看到,这个SessionID,其实就存储在Cookie 中,ASP.NET2.0默认存储的是ASP.NET_SessionId。这里要注意的是,如果用户没有使用过Session,在使用 SessionID时,其值是变化的。每刷新一次页面它就变化一次。
.NET开发中MS考虑到客户端不支持Cookie的方式,MS通过在URL传递一个24位的值,来保存这个SessonID。
.NET中提供一种更加友好的URL方式。"AutoDetect",ASP.NET2.0中会自动判断客户端是否支持Cookie,如果不支持,将在URL中记录SessionID。经过这样处理,SESSION问题就得到了很好的解决。

用户登录认证问题

手机如何让用户默认登陆。仿效了目前很多WAP网站都在采用的token方式。产生一个令牌,通过这个令牌进行登录。当然用户可以选择退出来清空这个令牌程序。

WAP计数统计

手机对Javascript支持不够,能采用的方式还是通过img的方式。虽然"图片显示"可能被手机禁用期待google支持Mobile。
目前个人感觉最好的还是Yahoo统计,51.la因为有图片统计,所以也可以使用

WAP的编码问题

1:程序开发的编码设置有关。包括WebConfig的设置、PageCode等都要统一编码方式
2:手机客户端的编码有关。只能通过服务端对特定的编码,进行解码来获得。
具体可以参考我的下面的链接
WAP编码问题一
WAP编码问题二

IP、手机号判断问题

手机号码被服务商屏蔽,所以大家就不要再Google、baidu 如何在WAP下获取手机号码了。
因为WAP Getaway的问题,你无法确定IP是否可以用了做某些判断,比如城市。我们目前根据测试的结果,IP应该可以用来作为城市判断。

WAP用户习惯

1:翻页问题(下一页、上一页的简单换位给用户带来方便)
2:Title问题(方便用户收藏,Mobile你不能让用户不断的点击和搜索)
3:URL保存状态(正因为Cookie的失效,如果你希望用户在下次还能进入同一个页面,请多关注URL)

评论: 0 | 引用: 0 | 查看次数: 2846
发表评论
登录后再发表评论!