区分手机和平板电脑浏览器
本文关键字:平板电脑 浏览器 手机 | 更新日期: 2023-09-27 17:59:52
我知道这个问题已经被打得半死了,但我不想在这里有任何超级复杂的东西。
我们的网站上有一个配套应用程序,仅与7英寸和10英寸平板电脑兼容。我们只需要提醒这些设备上的用户我们的应用程序。问题是,我不能下决心。我的Galaxy S3有一个1280 x 720的屏幕,但显然不是平板电脑。我也找不到一种方法来获得屏幕的物理大小。我想到的唯一解决方案是检测设备是否可以使用MobileCapabilities.CanInitiateVoiceCall
进行呼叫。不幸的是,老板对这个解决方案并不满意。
所以。。。如何在web应用程序(服务器端或客户端)中区分手机和平板电脑?
更新:到目前为止,安卓的最佳方法似乎是安卓团队的一篇博客文章:所有安卓手机都在UserAgent字符串中使用"Mobile",因此检查"Mobile"*和"Android"会告诉你它是不是手机,而"Android"应该是平板电脑。iOS设备应该同样简单——到目前为止,检查"iPhone"与"iPad"似乎已经奏效。
我知道这有点晚了,但我一直在寻找同样的东西。
Wurfl有你想要的水。你可以很容易地实现它,甚至有一个可以查询的api。
对于ASP.NET应用程序,必须首先进行一次性初始化。
public class Global : HttpApplication
{
public const String WurflDataFilePath = "~/App_Data/wurfl.zip";
private void Application_Start(Object sender, EventArgs e)
{
var wurflDataFile = HttpContext.Current.Server.MapPath(WurflDataFilePath);
var configurer = new InMemoryConfigurer().MainFile(wurflDataFile);
var manager = WURFLManagerBuilder.Build(configurer);
HttpContext.Current.Cache[WurflManagerCacheKey] = manager;
}
}
然后像这样使用它。
var device = WURFLManagerBuilder.Instance.GetDeviceForRequest(userAgent);
var isTablet = device.GetCapability("is_tablet");
var isSmartphone = device.GetCapability("is_smartphone");
有关更多信息,请查看ASP.NET实现
希望这能帮助到其他人。
您可以尝试进行用户代理检测并搜索关键字,例如,所有非平板电脑设备的用户代理上都有"Mobile Safari"关键字。