首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.NET中的移动浏览器设备检测

.NET中的移动浏览器设备检测
EN

Stack Overflow用户
提问于 2011-08-19 11:10:10
回答 3查看 5.3K关注 0票数 16

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

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

我想确定的是: a)如果你的设备是移动设备,b)什么操作系统(Android/IOS/等),以防我需要根据操作系统不同地处理任何事情,以及c)什么屏幕大小(用于加载不同的样式表)

EN

回答 3

Stack Overflow用户

发布于 2012-04-19 00:27:16

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

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

下面是我们如何在移动应用程序中检测台式机、手机和平板电脑:

代码语言:javascript
复制
    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引擎之间的差异。

票数 12
EN

Stack Overflow用户

发布于 2012-04-18 20:12:37

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

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

取而代之的是响应式设计。我不会在这里深入讨论响应式设计的细节,因为它会让我们偏离正轨。然而,它可以为你提供的是一种方法,它不是根据检测到的浏览器来定制整个体验,而是一种更微妙的方法,可以根据屏幕分辨率、css功能、启用的JavaScript等来自定义体验。

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

响应式技术真正不允许的(或者至少是折衷的)是移动版本和桌面版本之间非常显著的差异。因为每一个都会污染单独的体验,例如html可以隐藏在移动版本上,但仍然可以在后台下载……但这些技术正在发展中,例如,JavaScript可以用来在移动浏览器上下载低分辨率的图像,并在宽屏显示器上下载高分辨率的图像。

但是你总是可以把一个链接放到一个完全独立的移动版本/桌面版本的网站上,这样用户就可以决定退而求其次。

票数 4
EN

Stack Overflow用户

发布于 2012-04-23 18:29:55

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

1)您可以根据需要采用WURFL XML 2)候选列表参数3)使用XML Reader读取其xml并将值放入数据库中。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7116544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档