技术开发 频道

NBear案例-移动WEB开发之浏览器文件定义

IT168技术文档】

    今天为自己写的家庭帐务系统加一个WEB的操作界面,方便我爱人从她的手机上添加操作记录.该系统是用NBear实现的数据访问.

    开发很正常,在显示查询记录,我希望能在我老婆的手机上显示一个表格,她的手机的操作系统是IE4.01,是支持的.可是无论如何都不行.看来是.Net无法识别。

    查找一下,发现有很多种方法可以解决这个问题,包括属性重写,模板输出等等,可是都不是很方便。想想真可恨,明明系统支持,就是不行。后进行跟踪现在原因是.Net没有正确识别出客户端的浏览器,于是开始研究浏览器定义文件。

    终于发现因为客户端的UserAgent里多了一个Windows CE,所以被.Net拒绝接受,从而作为最普通的Mozilla浏览器处理。没有办法,只好自己定义了一个浏览器定义文件,终于解决,该浏览器定义文件如下,供大家参考

<browser id="Dopod900" parentID="Mozilla"> <identification> <userAgent match="^Dopod900 Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)" /> </identification> <capture> <userAgent match="Dopod900" /> </capture> <capabilities> <capability name="browser" value="IE" /> <capability name="extra" value="${extra}" /> <capability name="isColor" value="true" /> <capability name="letters" value="${letters}" /> <capability name="majorversion" value="${major}" /> <capability name="minorversion" value="${minor}" /> <capability name="screenBitDepth" value="8" /> <capability name="type" value="IE${major}" /> <capability name="version" value="${version}" /> <capability name="activexcontrols" value="true" /> <capability name="backgroundsounds" value="true" /> <capability name="cdf" value="true" /> <capability name="cookies" value="true" /> <capability name="css1" value="true" /> <capability name="ecmascriptversion" value="1.2" /> <capability name="frames" value="true" /> <capability name="javaapplets" value="true" /> <capability name="javascript" value="true" /> <capability name="jscriptversion" value="3.0" /> <capability name="msdomversion" value="4.0" /> <capability name="supportsFileUpload" value="true" /> <capability name="supportsMultilineTextBoxDisplay" value="false" /> <capability name="supportsMaintainScrollPositionOnPostback" value="true" /> <capability name="tables" value="true" /> <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" /> <capability name="vbscript" value="true" /> </capabilities> </browser>

    加了该定义文件以后,.Net就可以正确的识别出客户端浏览器的能力了。从而适配出了正确的选择。

0
相关文章