关于jquery:用JavaScript检查我是否在智能手机上?

A check in JavaScript that returns whether I am on a smartphone?

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

我想执行一个检查我的javascript函数,该函数决定我是否在智能手机上,然后根据结果决定是否运行该函数。

在javascript中检测/检查智能手机(或一般的手持设备)的最佳方法是什么?

例如

1
2
3
4
5
if (user is on a smartphone) {
//run this code if on a phone
} else {
//run this code if not on a phone
}

如果没有一种确定的方法来检查电话,那么在决定运行哪个代码之前,我应该执行哪些检查是最好的选择?

编辑/更新:这篇类似文章的答案和评论应该给我一些东西-在jquery中检测移动设备的最佳方法是什么?


Ye Olde浏览器嗅探似乎是解决方案

1
2
3
4
5
6
7
8
9
if( navigator.userAgent.match(/Android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPad/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 ){
 // some code..
}


您可以使用分类程序JS库来测试用户的设备是移动电话、平板电脑、智能电视还是台式机。分类程序使用用户代理嗅探,因此您应该密切关注脚本的更新,因为用户代理往往会随着时间的推移而"进化"。

以下是如何使用分类程序检查用户是否在智能手机上,而不是智能电视、台式机或平板电脑上:

1
2
3
4
5
if (categorizr.isMobile) {
    //run this code if on a phone
} else {
    //run this code if not on a phone
}


你可以试试Twitter引导程序,http://twitter.github.com/bootstrap/scaffolding.html。尤其是响应式设计部分。