我刚刚开始创建我的第一个用WebForms编写的桌面网站的移动版本。
我现在的问题与移动设备/浏览器检测有关。
我想确定的是: a)如果你的设备是移动设备,b)什么操作系统(Android/IOS/等),以防我需要根据操作系统不同地处理任何事情,以及c)什么屏幕大小(用于加载不同的样式表)
发布于 2012-04-19 00:27:16
检测浏览器类型最简单的方法是查看useragent
字符串。该字符串中的关键字将有助于检测浏览器。UserAgentString.com维护了一个完整的用户代理字符串列表,但是您需要查找的主要内容只有几个关键字。
例如," 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引擎之间的差异。
发布于 2012-04-18 20:12:37
我不一定认为我提出的在许多情况下是最好的解决方案,但是它可能证明是对您的问题领域的另一种见解。
而不是检测移动浏览器本身,这与浏览器嗅探有一些相似之处/缺点。
取而代之的是响应式设计。我不会在这里深入讨论响应式设计的细节,因为它会让我们偏离正轨。然而,它可以为你提供的是一种方法,它不是根据检测到的浏览器来定制整个体验,而是一种更微妙的方法,可以根据屏幕分辨率、css功能、启用的JavaScript等来自定义体验。
响应式设计不是一种技术本身,而是一套技术,可以根据所使用的浏览器(移动浏览器)逐步增强体验。
响应式技术真正不允许的(或者至少是折衷的)是移动版本和桌面版本之间非常显著的差异。因为每一个都会污染单独的体验,例如html可以隐藏在移动版本上,但仍然可以在后台下载……但这些技术正在发展中,例如,JavaScript可以用来在移动浏览器上下载低分辨率的图像,并在宽屏显示器上下载高分辨率的图像。
但是你总是可以把一个链接放到一个完全独立的移动版本/桌面版本的网站上,这样用户就可以决定退而求其次。
发布于 2012-04-23 18:29:55
WURFL是一个很好的资源。您可以配置所需的值(不需要接受所有参数)。我想如果你想创建你自己的解决方案-
1)您可以根据需要采用WURFL XML 2)候选列表参数3)使用XML Reader读取其xml并将值放入数据库中。
这样你就可以有自己的解决方案了。(aLthough的一个问题是,稍后在WURFL上注册的新设备将不会自动更新,因此您必须稍后自行更新)
https://stackoverflow.com/questions/7116544
复制相似问题