我知道这个问题被打死了,但我不希望这里有任何超级复杂的事情。
我们的网站配有一个配套应用程序,仅与7英寸和10英寸平板电脑兼容。我们只需要提醒用户注意我们的应用。问题是,我不能通过解决方案。我的Galaxy S3有一个1280 x 720的屏幕,但显然不是平板电脑。我也不能为我的生活找到一种方法来获得屏幕的物理大小。我提出的唯一解决方案是检测设备是否可以使用MobileCapabilities.CanInitiateVoiceCall
拨打电话。不幸的是,老板对这个解决方案并不满意。
那么......如何在我的网络应用程序(服务器或客户端)中区分手机和平板电脑?
更新到目前为止,似乎Android的最佳方法来自Android团队的博文:所有 Android手机在UserAgent中使用“Mobile”字符串,所以检查“移动”* 和“Android”会告诉你它是否是手机,而“Android”应该是平板电脑。 iOS设备应该同样简单 - 检查“iPhone”和“iPad”似乎到目前为止一直有效。
答案 0 :(得分:1)
我知道这有点晚了,但我一直在寻找同样的事情。
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 implementation
希望这可以帮助其他人寻找这个。
答案 1 :(得分:0)
您可以尝试执行用户代理检测并搜索密钥,例如,所有非平板电脑设备的用户代理上都有“Mobile Safari”关键字。