.NET WAP开发中遇到的问题汇总,主要总结一下在.NET WAP开发下浏览器的兼容及相关问题的处理。针对的是WML1.1的规范。
设置Emptyok= “true”
在WML中input 标签有一个emptyok的属性。表示用户可否不填输入框,默认为false,即要填,为true时可以不填。从理论上讲这是一个很好的属性,可以减少用户输入为空的判断。但实际运用中,首先不是所有手机浏览器支持,但最严重的问题是,一但你设置了emptyok=false,在有些手机中会将整个页面的 URL的链接点击都触发这个是否为空的判断。所以从兼容性的角度,请设置emptyok=true,在后代码进行判断。
WML实体替换
来自:http://www.w3school.com.cn/wap/wml_entities.asp
这是个很通用的问题,也就是说,要对WAP下的输出进行文本内容替换。
data = data.Replace(”&”, “&”);
data = data.Replace(”\”", “”");
data = data.Replace(”‘”, “‘”);
data = data.Replace(”<”, “<”);
data = data.Replace(”>”, “>”);
主要还是上面5个特殊字符的替换,空格是一个比较特殊的例子。下面我会具体解释.
WML下的空格
从理论上空格只要替换成 这个实体就可以了。可有些手机中确直接显示 ,当然你不是很在意可以忽略。但这里可以提供一个好的解决办法,就是将空格替换成实体编码  这样基本上有空格的地方都显示正常了。
不使用CData嵌套内容
XML中的CData其实就是为了解决长文本中含有特殊字符的问题。但如果你希望通过<–!CData[]–>,而不是采用特殊字符替换成实体。你会发现有些手机浏览器,直接将这段内容不显示。所以,在目前的情况下,还是请使用WML实体替换吧。
IE下显示WAP页面
大家都知道,在IE下如果直接访问WML1.1的WAP站点,会提示你文件下载。但如果你希望在IE下也可以正常访问WML1.1,而用户又不需要通过安装或设置,或是通过第三方网站。你可以通过URLRewrite的方式,只要IE访问的WAP1.1的站点请求的页面后缀是*.html,*.htm等的,同样可以直接访问WAP站点,而不会提示文件下载。
防止客户端手机缓存页面
手机客户端默认情况下可能会缓存经访问过的页面内容,这样有可能照常用户看到的内容不是更新的,所为一般情况,会要求客户端不缓存页面内容。在输入的内容页中添加如下<meta http-equiv=“Cache-Control” content=“no-cache”>即可。其原理和www网站类似。
WAP编码问题
不累赘,可以参考 使用.NET进行WAP开发 一文
Request参数读取
这个就要提到asp.net中参数读取问题。
request["key"]
request.form["key"]
request.query["key"]
基本上就三种,第一种会自动判断是form还是query,但在WAP开发中需要明确指定request.form还是request.query,如果使用第一种在有些手机中将无法读取到参数值。这是个很迷惑的问题,但还是请指明读取的方式。
card包含P标签
也是手机兼容的问题。主要还是标签的写法上。如果直接在节点中输入内容,有些手机将无法正确读取。所以card下面至少要包含一个标签p。<card><p></p></card>
使用相对路径,而不是绝对路径
这个问题的实质是因为使用了ASP.NET的自动支持Cookie的问题。在.NETWAP开发一文中,提到在不支持Cookie的手机中,ASP.NET会自动将当前的SeesionID隐藏在url中。这样如果你直接使用 “/search.aspx”,这样的绝对路径,将会丢失sessionid。所以在WAP的架构和设计上我们采用一层目录的概念,来简化开发中对 seesionid的处理。如果你使用.NET,并且希望更好的支持手机客户端,目前的经验使用相对路径是最好的选择。
大概总结到这,目前我们已经升级到WAP2.0了,也碰到不少兼容的问题,还正在解决中,也希望大家有好的经验来分享。感觉相比WWW,Moile 市场的浏览器更是混乱。而且WAP2.0比WAP1.1的兼容问题,更麻烦。 就连同一型号,同样内置,同样版本的手机,也有兼容问题。
分享到:
相关推荐
在Asp.Net技术框架下开发wap手机网站,可以利用其强大的功能和灵活性为移动用户提供便捷的Web服务。WAP(Wireless Application Protocol)是无线应用协议,主要用于将互联网内容优化到移动设备上,使得用户可以通过...
开发者在开发WAP+应用时,可能会涉及到设备同步的问题,比如将联系人、邮件、日历等信息从移动设备同步到桌面应用,或是反过来。这对于提升用户体验至关重要,因为用户通常希望在不同设备间无缝地切换,以获取最新的...
为此,Asp.Net Mobile Controls及MMIT特别关注于不同设备之间的兼容性问题,只需要关注业务逻辑,而无需关心具体的设备细节。 图1.1展示了Asp.Net Mobile的架构,包括MMIT Runtime Rendering Engine,它位于Web应用...
- **Mobile Device Browser File (MDBF)**:通过访问http://mdbf.codeplex.com/,可以获取有关各种移动设备及其浏览器的信息,这对开发兼容性良好的Mobile Website非常重要。 - **.NET Framework 3.5 SP1+**:这是...
为了适应不同环境和大量并发请求,开发者需要考虑接口调用的兼容性,如支持不同的.NET框架版本,并进行性能优化,减少接口调用延迟,提高用户体验。 通过这个.NET版的农业银行支付接口demo,开发者可以全面了解和...
这个压缩包文件包含的是一个基于ASP.NET技术开发的交友会员系统,专为实现WEB和WAP(移动设备)双平台的同学录应用。ASP.NET是微软公司推出的Web应用程序框架,它允许开发者使用.NET Framework构建动态网站、Web应用...
本文档将深入探讨ASP.NET中的两种主要开发模型:网站模型(Website Model)和Web应用程序项目模型(Web Application Project, WAP),并着重讲解它们在构建、编译及部署过程中的差异和优势。 #### 二、ASP.NET的...
对于WAP 2.0,ASP的问题得到了解决,但仍推荐使用JSP或ASP.NET。 3. **ASP与ASP.NET**:ASP(Active Server Pages)是微软的早期服务器端脚本技术,主要用于构建动态网页。ASP.NET则是ASP的升级版,支持更现代的...
在本篇内容中,重点是讨论如何使用ASP.NET进行WAP程序开发,以及解决在开发过程中遇到的设备匹配问题。 描述中提到的“asp.net开发wap必备”,暗示了使用ASP.NET框架创建WAP应用程序时可能会遇到的问题。ASP.NET是...
在WAP 2.0下,Asp的这个问题已得到解决,但在WAP 1.2的环境下,Jsp由于与中国联通和中国移动提供的接口兼容性更好,且性能更优,所以推荐使用Jsp。 4. **IIS上的WAP网站配置**: - **创建独立站点文件夹**:在IIS...
【标题】中的“蓝色小程序网站pbootcms模板-小程序电商软件开发公司网站源码(pc+wap)”表明这是一个基于PbootCMS内容管理系统构建的网站模板,特别适用于小程序电商软件开发公司的在线展示。该模板采用蓝色为主...
8. 兼容性问题:使用Visual Studio .NET 2003开发的应用程序可以在Windows Mobile 5上运行,因为Windows Mobile 5 ROM内置了.NET Compact Framework 1.0 SP3。 9. 数据库选择:尽管SQL CE可能较大,但开发者仍可以...
C#不仅支持Web程序开发,还能进行WinForm(C/S)程序开发,以及快速的Wap开发。 从市场表现来看,2004年,Sun Microsystems虽然在销售上有增长,但主要得益于与微软的和解协议,而微软则保持了强劲的销售额和利润...
WAP网站通常采用WML(Wireless Markup Language)或XHTML MP(Mobile Profile)作为其标记语言,但这个程序使用的是HTML,可能是因为它旨在兼容更广泛的设备和浏览器。 在描述中提到“修改了一些错误”,这表明源码...
掌上湖北wap网站利用了WAP2.0的特点,能够兼容多种类型的手机浏览器,确保用户在不同设备上的良好浏览体验。 对于初学者来说,这个源码具有很高的学习价值。通过研究和分析,可以了解到如何利用`VS2008`和`Access`...