2011-08-19 84 views
16

我刚开始创建我的第一个用WebForms编写的桌面网站的移动版本。.NET中的移动浏览器设备检测

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

我想确定的是a)如果你的设备是移动的b)什么操作系统(Android/IOS /等),如果我需要根据操作系统处理不同的东西c)屏幕尺寸是多少加载不同的样式表)

+0

没有答案?我有同样的问题......您作为解决方案解决了什么问题? –

+1

看看这个问题/答案:http://stackoverflow.com/questions/9587111/mobile-site-detection-server-side-vs-client-side – avs099

+0

使用'手机检测'移动检测库 http:///www.handsetdetection.com
您可以通过访问以下链接获取'.NET手机检测API套件:
http://code.google.com/p/handset-detection-asp-net-api-kit/

回答

4

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

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

而是采取响应式设计的方法。我不会在这里详细讨论响应式设计,因为它会带我们脱离轨道。然而,它可以为您提供的是一种方法,它不是根据检测到的浏览器自定义整个体验,而是根据屏幕分辨率,css功能,启用JavaScript等自定义体验的一种更为细微的方法。

响应式设计并非是一种技术性的说法,而是一系列技术,使得体验能够根据所使用的浏览器(移动浏览器)逐步增强。

什么样的响应技术并不真正允许(或者至少它被损害)是例如手机版/桌面版。由于每个人通常会污染单独的经历,例如html可以隐藏在移动版本中,但仍可以在后台下载......但是这些技术正在发展,例如, JavaScript可用于在移动浏览器上下载低分辨率图像,在宽屏幕显示器上下载高分辨率图像。

但是,您始终可以链接到完全独立的移动版本/桌面版本的网站,以允许用户决定是否退款。

+0

语法纳兹在这里,它是“本身”,拉丁语为“本身”http://en.wikipedia.org/wiki/Per_se –

+0

谢谢,刚刚编辑和纠正我的一些可怕的拼写!我一定很仓促。 –

12

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

例如,单词“黑莓”只会在从黑莓设备浏览时出现。与iPad和iPhone类似。 Android设备都在useragent字符串中显示“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引擎之间的差异。

1

WURFL是一个很好的资源。你可以配置你需要的值(不需要全部参数)。我认为,如果你想创建自己的解决方案 -

1)您可以将WURFL XML 2)入围参数按您的需求 3)使用XML阅读器阅读它的XML,并把价值在你的数据库。

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