通过Javascript检测移动设备

时间:2013-01-04 08:13:06

标签: javascript android jquery

与此问题相关:Detect Android phone via Javascript / jQuery

在新版本的android sdk中,本机浏览器不再返回代号“android”了。 navigator.userAgent返回类似的内容:

  

mozilla / 5.0(X11; Linux x86_64)AppleWebkit7534.24(KHTML,与Gecko一样)Chrome / 11.0.696.34 Safari7534.24

有什么建议吗?这是来自HTC One S的手机和当前的Android 4.1.1版

3 个答案:

答案 0 :(得分:0)

this question。您确定自己没有在桌面模式下查看吗?股票浏览器和许多其他浏览器有两种不同的用户代理,具体取决于浏览模式。

答案 1 :(得分:0)

不要使用浏览器嗅探!使用特征检测。有一个名为modernizr的javascript库,可以根据用户客户端的功能执行操作。

答案 2 :(得分:0)

是的...这可能是因为您的浏览器处于“桌面模式”。

您可能希望在小屏幕上显示您的网页的某些移动版本,以便您可以尝试:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<script type="text/javascript">  
  if ((screen.width < 480) || (screen.height < 480)) {    
    location.replace('/m/');
  }  
</script>

您需要viewport metatag才能让浏览器报告实际的屏幕大小。

编辑:
根据{{​​3}},您可能需要等待一段时间让浏览器“赶上”才能检查屏幕大小,所以我想最好使用它:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<script type="text/javascript">  
  setTimeout(function() {
               if ((screen.width < 480) || (screen.height < 480)) {    
                 location.replace('/m/');
               }  
             }, 200);
</script>