【发布时间】:2011-12-10 01:35:53
【问题描述】:
我有一个主要为桌面浏览器构建的 .NET 网站,但我目前正在制作它的移动版本。我要做的是根据用户访问网站的设备加载网站。有没有一种方法可以在用户请求站点时获取有关用户设备的信息?
问候, 苏米特。
【问题讨论】:
我有一个主要为桌面浏览器构建的 .NET 网站,但我目前正在制作它的移动版本。我要做的是根据用户访问网站的设备加载网站。有没有一种方法可以在用户请求站点时获取有关用户设备的信息?
问候, 苏米特。
【问题讨论】:
根据其他人的建议,您可以使用通过Request.Browser 访问的System.Web.HttpBrowserCapabilities 类,但是如果不更新browser definition files,这些信息完全没有价值。
例如,如果您使用Request.Browser.IsMobileDevice,则此应该提供您想要的,但基于 Windows 中 .NET 框架文件夹中的一组非常过时的正则表达式。
您可以在 Stack Overflow 上的 here 帖子(目前未得到答复和不受欢迎)上查看可能遇到的问题。
如果您不打算让浏览器定义文件保持最新(这不是一项小任务),那么就不要走这条路。
如果您只是想知道用户是否在移动设备上查看,那么这里有几个选项:
其中有些是免费的,有些不是,如果您真的只对它是否是移动设备感兴趣,我的建议是使用 Detect Mobile Browsers。
【讨论】:
使服务器能够收集有关客户端上运行的浏览器功能的信息。
这实际上暴露在 Page 对象的 Request 属性上 - 在 ASP.NET 页面中,您可以执行以下操作:
var browserCap = this.Request.Browser;
【讨论】:
您可以检查 HttpRequest.Browser 属性 - MSDN link。
【讨论】:
商业替代品是BrowserHawk
【讨论】: