asp.net-mvc - ASP.NET MVC 3 简单可靠的移动设备检测 : use 51degrees. mobi 还是原生?

标签 asp.net-mvc asp.net-mvc-3 mobile 51degrees

在我的 ASP.NET MVC 3 Web 应用程序中,我重写自定义 View 引擎中的 View 名称,以呈现针对非平板电脑移动设备优化的不同 View 。

我想要执行此 View 覆盖的只是 Request.Browser.IsMobileDevice 的准确值和设备的 native 显示宽度。

51 Degrees.mobi 对于这个简单的用例来说感觉非常沉重和复杂。也许这只是我的挫败感,因为我试图费力地浏览 51 Degrees 网站上的所有示例和文档,以获取看似简单的问题的答案,以实现简单的实现。

如果没有 51 度,我确实获得了 Request.Browser.IsMobileDeviceRequest.Browser.ScreenPixelsWidth 的值。我注意到,对于桌面浏览器,宽度始终为 640,而 Request.Browser.Capability["51Degrees.mobi"] 包含 ScreenPixelsWidth 的值“Unknown”。考虑到实现的服务器端性质,我认为“未知”值更准确。

我的主要问题是:我真的需要 51 度来满足我的简单需求吗?

如果我不使用 51 Degrees,是否有一些特定的浏览器示例导致我无法正确检测 IsMobileDevice 和屏幕宽度?例如,对于新 iPad 或最新的 Android 浏览器版本,内置的 .NET Request.Browser.IsMobile 和 ScreenPixelsWidth 值是否不准确或不存在?我的网站拥有大约 65% 的移动用户,其中许多人使用的是带有 UP.Browser 等浏览器的蹩脚功能手机,因此正确使用移动设备相当重要。

如果我使用 51 Degrees,我是否需要始终深入了解 Request.Browser.Capability["51Degrees.mobi"]?或者 51°s 是否会覆盖/更新 Request.Browser.IsMobileDevice 的值以与其对浏览器的评估保持同步?显然它不会覆盖Request.Browser.ScreenPixelsWidth。

我愿意接受“你做错了,这里有更好的方法”的答案,只要他们不建议使用 MVC 4 或涉及 WURFL 等付费解决方案。

最佳答案

这个FAQ解释了 Request.Browser 的哪些属性被 51Degrees.mobi 覆盖。

极少数情况下您应该直接访问“51Degrees.mobi” key 。如果该属性已被覆盖,则可以像平常一样访问它。如果该属性未被覆盖或未被 HttpBrowserCapability 覆盖,则应使用属性名称。例如:

var isTablet = Request.Browser["IsTablet"];

查看此link获取可用属性的列表。

由于它应该覆盖 ScreenPixelsWidth,我有兴趣了解有关您的测试环境的更多信息。由于 .NET 要求该值是数字,如果 51Degrees.mobi 无法确定大小(未知),则该值不会被覆盖。

感谢您考虑 51Degrees.mobi。

关于asp.net-mvc - ASP.NET MVC 3 简单可靠的移动设备检测 : use 51degrees. mobi 还是原生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706698/

相关文章:

asp.net-mvc - Rotativa ViewAsPDF CSS 大小/尺寸

c# - 在 View 中创建 HiddenFor IEnumerable<String>

javascript - 在 Javascript + MVC3 中使用 Json 解析实体列表

javascript - 检测上一页对象的状态

css - 网站在手机上看起来不太好

c# - 将 StreamReader 转换回 pdf

c# - 为什么隐藏字段值没有发布在 mvc 4 中?

multithreading - 同步注释在 Kotlin 中不起作用

c# - 如何在传递到 Controller c# web api 的模型上创建自定义验证消息

c# - MVC3 DropDownList + ViewBag 问题