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

gus*_*uyn 12 javascript html5 media-queries responsive-design

我可以使用哪些JavaScript代码来检测用户是否在HTML5中的移动或PC/mac浏览器上?

ne1*_*10s 31

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

1.用户代理检测 您可以在此检查客户端声称的内容.例如

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    // is mobile..
}
Run Code Online (Sandbox Code Playgroud)

它并不完美,因为我认为这个属性很容易被意外或其他方式改变.此外,此列表在2年/ 2周/ 2天内仍然不太准确!

2.使用客户端功能 您可以想象,更实用的方法 - 允许您迎合客户端的已知物理功能.例如

if( screen.width <= 480 ) {     
    // is mobile.. 
}
Run Code Online (Sandbox Code Playgroud)

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

如果有人有任何更好的想法可以在桌面和设备之间进行强有力的辨别,请发表评论!:)