我在我的asp.net项目中包含了一个移动网页表单,我认为它可以/应该只为我的移动用户看到,但我意识到它也可以在任何浏览器中看到,我看不到问题导致我可以使用HttpBrowserCapabilities.IsMobileDevice = true来区分访问并转移到适当的aspx页面,但结果是当我从我的移动设备访问Web表单时,它被识别为IsMobileDevice = false并将我发送到另一个页面
怎么可能?
移动设备运行Pocket PC 2003。
答案 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移动页面。