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


 今天为自己写的家庭帐务系统加一个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就可以正确的识别出客户端浏览器的能力了。从而适配出了正确的选择。

 

本文作者:

 今天为自己写的家庭帐务系统加一个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就可以正确的识别出客户端浏览器的能力了。从而适配出了正确的选择。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3