检测客户端是平板电脑还是手机的最佳方法是什么?

时间:2011-06-16 13:52:25

标签: javascript mobile-website screen-resolution

我目前正在开发一款专为智能手机和平板电脑设计的客户端应用程序。因此它将获得两种不同的布局模式。

虽然用户可以在两种模式之间切换,但我必须在首次使用该应用程序时预先设置模式。

所以我正在寻找一种可靠的方法来自动检测用户是否带有打击垫或智能手机(桌面浏览器不相关)。

我可以查看浏览器的分辨率,但我不确定这是否是通往罗马的正确途径,因为960x640px的iPhone 4的分辨率几乎与1024x768的iPad屏幕分辨率一样高,并且要记住Android设备。

有什么建议吗?

4 个答案:

答案 0 :(得分:6)

您可以使用http://detectmobilebrowser.com/脚本检测是否是手机。如果没有,您可以认为它是平板电脑(因为,正如您所提到的,桌面浏览器与此应用程序无关)。

答案 1 :(得分:2)

我会选择检测屏幕分辨率,因为如果浏览器是手机或平板电脑应该没关系,唯一应该影响的是布局。确定使用哪种大小的布局最好的方法是分辨率。

答案 2 :(得分:0)

一种方法是检查用户代理。

var UA = navigator.userAgent;
if (UA.indexOf("iPad") != -1) {
    // iPad
} else if (UA.indexOf("iPhone") != -1) {
    // iPhone
}

答案 3 :(得分:0)

+1用于测试屏幕分辨率而不是用户代理(而iPhone和iPad无论如何都是一个非常简单的测试 - 那么所有其他平板设备呢?)

在测试iPhone 4(即视网膜显示器)方面,此测试应该适用于您的Javascript:

if(window.devicePixelRatio > 1){
    // Retina device...