HTML5:使用javascript检测您是使用手机还是PC?

HTML5: Detecting if you're on mobile or pc with javascript?

本问题已经有最佳答案,请猛点这里访问。

我可以使用什么javascript代码来检测用户是否在HTML5中的移动或PC/Mac浏览器上?


几年前我一直在研究这个问题。简而言之,你不能用100%的可靠性来做这件事。似乎有两种常用的方法来提供"最佳猜测":

1。用户代理检测这是你检查客户声称是什么的地方。例如

1
2
3
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    // is mobile..
}

它并不完美,因为我相信这个属性很容易被意外或其他方式更改。此外,在2年/2周/2天的时间内,此列表仍然不太可能准确!

2。使用客户端功能正如您所能想象的那样,一种更加务实的方法——允许您满足客户已知的物理能力。例如

1
2
3
if( screen.width <= 480 ) {    
    // is mobile..
}

然而,这也不理想,因为现代设备中越来越高的像素密度会给你一个误导性的结果:看起来你比实际拥有更多的"空间"。另外,不同的浏览器可能会通过不同的方式公开它们的功能。

如果有人有更好的想法来坚定地辨别桌面和设备,请评论!:)