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

时间:2008-08-16 16:42:28

标签: asp.net mobile mobile-website

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

怎么可能?

移动设备运行Pocket PC 2003。

3 个答案:

答案 0 :(得分:4)

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

我从经验中了解到,如果智能手机通过第三方浏览器向您的服务提出请求,那么通常不会对任何类型的“您使用的设备”进行测试({{1 }}和/或HttpCapabilitiesBase.IsMobileDevice)将失败。

不幸的是,如果没有大量允许的用户代理(或者不允许的用户代理),那么在渲染之前,你必须确保它不会以Mozilla,iPhone或Opera开头。页...

这是一个难以进入的舞台。
祝你好运。

答案 1 :(得分:2)

有些内容无法识别,因为UserAgent已被搞砸或正在使用新的浏览器。比如Opera Mobile 9.5。要解决此问题,您需要创建专门用于定义此操作的浏览器(* .browser)文件。我必须为从谷歌发送的新的基于Mozilla的UserAgent这样做。

答案 2 :(得分:1)

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

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