惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园_首页
腾讯CDC
D
Docker
The Cloudflare Blog
量子位
爱范儿
爱范儿
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
博客园 - 司徒正美
aimingoo的专栏
aimingoo的专栏
Blog — PlanetScale
Blog — PlanetScale
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
博客园 - 聂微东
Vercel News
Vercel News
MyScale Blog
MyScale Blog

博客园 - 上善若水

Struts2页面显示缓慢 JavaScript基础知识学习二 JavaScript核心基础知识学习一 转帖 SQL Server数据库开发注意事项 如果你恨一个人... WebSphere6.1 JSP 源码级别问题 Struts2的类型转换器 技巧记录 一个私有的PageLoad在Mono下引发的问题 如何写一个不带BOM的UTF8文件 常用.Net正则表达式 一个大小写引起的SVN无法Commit的问题 Asp.Net 国际化问题 在Asp.Net移动窗体中不可以使用<%=%> 如何返回一个服务器相对路径到客户端的相对路径 动态的向内容页中添加样式表 VS的生成后事件命令行示例 发现自己的BLOG被转载了 查询Mysql的数据架构信息研究
移动WEB开发之浏览器文件定义
上善若水 · 2007-04-22 · via 博客园 - 上善若水

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