I'd like to essentially do the following (in JavaScript or PHP):
if (desktop browser) {
do x;
}
else { // mobile browser
do not do x;
}
It is known that using a browser detection method is not recommended。更好的解决方案是使用capability testing。我的问题是,随着移动浏览器变得越来越智能,功能与台式机一样强大,理想情况下,有什么独有的功能检测功能可以从非台式机浏览器中过滤出台式机?
我认为逆转条件检查,即if (mobile browser) {} else ...
可能会遇到更多问题,对吗?
最佳答案
Google从A Beautiful Site进行了一些搜索:
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
if(isMobile.any()){
// Mobile!
} else {
// Not mobile
}
pixel-ratio
,因为新的台式计算机很可能是“视网膜”或超高清的。您无法检查device-orientation
,因为它不再是手机所独有的。您无法检查(如果可以)陀螺仪,因为某些笔记本电脑可能会返回值。