6

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

怎么可能呢?

移动设备运行 Pocket PC 2003。

4

3 回答 3

4

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

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

不幸的是,由于缺少大量允许的用户代理(或不允许的用户代理),您只需要在渲染页面之前确保它不以 Mozilla、iPhone 或 Opera 开头。 .

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

于 2008-08-18T04:27:17.060 回答
2

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

于 2008-08-16T16:46:28.270 回答
1

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

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

于 2008-09-25T08:37:13.220 回答