【问题标题】:mobile browser device detection in .NET [closed].NET中的移动浏览器设备检测[关闭]
【发布时间】:2011-10-30 07:13:02
【问题描述】:

我刚刚开始创建我的第一个移动版本的桌面网站,它是用 WebForms 编写的。

我目前的问题与移动设备/浏览器检测有关。

我要确定的是 a) 如果您的设备是移动设备 b) 什么操作系统 (Android/IOS/etc) 以防我需要根据操作系统和 c) 什么屏幕尺寸(用于加载不同的样式表)

【问题讨论】:

标签: asp.net .net mobile browser-detection


【解决方案1】:

在许多情况下,我不一定认为我提出的建议是最佳解决方案,但它可能会证明对您的问题领域的另一种见解。

而不是检测移动浏览器本身,这与浏览器嗅探有一些相似之处/缺点。

改为采用响应式设计的方法。我不会在这里详细介绍响应式设计,因为它让我们偏离了轨道。然而,它可以为您提供的是一种方法,它不是根据检测到的浏览器来定制整个体验,而是一种基于屏幕分辨率、css 功能、启用的 JavaScript 等定制体验的更微妙的方法。

响应式设计并不是一种单独的技术,而是一组技术,可以根据所使用的浏览器(移动浏览器)逐步增强体验。

响应式技术实际上不允许(或至少它被妥协)的是,例如移动版/桌面版。因为每个通常都会污染单独的体验,例如html 可以隐藏在移动版本上,但仍可能在后台下载......但这些技术正在发展,例如JavaScript 可用于在移动浏览器上下载低分辨率图像,在宽屏显示器上下载高分辨率图像。

但您始终可以放置一个指向完全独立的移动版/桌面版网站的链接,以允许用户决定作为后备版本。

【讨论】:

  • 这里是语法纳粹,它是“本身”,拉丁语中的“本身”en.wikipedia.org/wiki/Per_se
  • 谢谢,刚刚编辑并纠正了我的一些糟糕的拼写!我一定很着急。
【解决方案2】:

WURFL 是一个很好的资源。您可以配置所需的值(无需获取所有参数)。我想如果你想创建自己的解决方案-

1) 你可以学习 WURFL XML 2) 根据您的需要列出参数 3) 使用 XML Reader 读取其 xml 并将值放入数据库中。

这样您就可以拥有自己的解决方案。 (虽然有一个问题是稍后在 WURFL 上注册的新设备不会自动更新,因此您必须稍后自行更新)

【讨论】:

    【解决方案3】:

    通过查看useragent 字符串来检测浏览器类型是最简单的。该字符串中的关键字将有助于检测浏览器。 UserAgentString.com 维护了一个完整的用户代理字符串列表,但您需要查找的主要内容只是几个关键字。

    例如,“blackberry”一词仅在从 Blackberry 设备浏览时才会出现。与 iPad 和 iPhone 类似。 Android 设备都在用户代理字符串中显示“android”,但它们通过包含用于手机的关键字“mobile”来区分平板电脑和手机。

    以下是我们在移动应用程序中检测台式机、手机和平板电脑的方法:

        public enum DeviceType
        {
            Desktop,
            Tablet,
            Phone
        }
    
        public static DeviceType UserAgentToDeviceType(string userAgent)
        {
            if (userAgent.ToLowerInvariant().Contains("blackberry"))
                return DeviceType.Phone;
    
            if (userAgent.ToLowerInvariant().Contains("iphone"))
                return DeviceType.Phone;
    
            if (userAgent.ToLowerInvariant().Contains("ipad"))
                return DeviceType.Tablet;
    
            if (userAgent.ToLowerInvariant().Contains("android"))
            {
                if (userAgent.ToLowerInvariant().Contains("mobile"))
                    return DeviceType.Phone;
                else
                    return DeviceType.Tablet;
            }
    
            return DeviceType.Desktop;
        }
    

    如果您使用jQuery Mobile 之类的内容,则无论设备类型如何,该网站都将针对移动外观进行定制,并且它将处理不同设备上 JavaScript 引擎之间的差异。

    【讨论】:

      最近更新 更多