移动设备被检测为非移动设备

Mobile device is detected as non mobile device

提问人:Nelson Miranda 提问时间:8/17/2008 最后编辑:Andrei RîneaNelson Miranda 更新时间:10/28/2010 访问量:5593

问:

我已经在我的 asp.net 项目中包含了一个移动 Web 表单,我认为它可以/应该只为我的移动用户看到,但我意识到它也可以从任何浏览器看到,我没有看到问题,因为我可以使用 HttpBrowserCapabilities.IsMobileDevice=true 并转移到适当的 aspx 页面来区分访问, 但结果是,当我从移动设备访问 Web 表单时,它被标识为 IsMobileDevice = false 并将我发送到另一个页面。

这怎么可能?

移动设备运行 Pocket PC 2003。

asp.net 手机 网站

评论


答:

2赞 Nick Berardi 8/17/2008 #1

有些无法识别,因为UserAgent被弄乱了,或者正在使用新的浏览器。例如 Opera Mobile 9.5。要解决此问题,您需要创建一个专门用于定义此问题的浏览器 (*.browser) 文件。我必须为从Google发送的基于Mozilla的新UserAgent执行此操作。

4赞 Pat Hermens 8/18/2008 #2

恕我直言:的值是一个更安全的赌注,因为它实际上表示发出请求的浏览器,而不是设备本身的类型。HttpContext.Current.Request.Headers("User-Agent")

我从经验中了解到,如果智能手机通过第三方浏览器向您的服务发出请求,那么通常任何类型的“您是什么类型的设备”测试(和/或)都会失败。HttpCapabilitiesBase.IsMobileDeviceHttpContext.Current.Request.Browser.IsMobileDevice

不幸的是,如果没有一大堆允许的用户代理(或不允许的用户代理),你只需要确保它不是从Mozilla、iPhone或Opera开始的,然后你就可以渲染页面了......

这是一个很难玩的竞技场。
祝你好运。

1赞 fravelgue 9/25/2008 #3

我认为您应该使用比 Microsoft 浏览器功能更好的其他 DDR。我正在使用 http://wurfl.sourceforge.net>WURFL,它是开源的,也许它得到了更多的扩展和更新。还有其他商用 DDR,如 DeviceAtlas

有很多一些 .net 库,但我使用的是 Marg.Wurfl。它允许使用 wurfl 功能呈现 Web 移动页面。