仅自动检测移动浏览器(通过用户代理?)而非平板电脑

时间:2014-09-10 12:48:34

标签: javascript android jquery mobile responsive-design

我想仅为不支持平板电脑的移动设备应用元标记。目的是缩小mobie设备中的页面。我得到了以下条件,但问题是它也适用于平板电脑,因为还有安卓平板电脑。

<script>
    if(navigator.userAgent.match(/Android/i)
  || navigator.userAgent.match(/webOS/i)
  || navigator.userAgent.match(/iPhone/i)
  || navigator.userAgent.match(/iPod/i)
  || navigator.userAgent.match(/BlackBerry/i)
  || navigator.userAgent.match(/Windows Phone/i)) {
    document.write('<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=0.25" />');
}
    </script>

我知道这是一个老问题,但我无法找到相关答案。

1 个答案:

答案 0 :(得分:1)

移动Android在User-Agent标头中有“Mobile”字符串。平板电脑Android没有。因此,要仅获取移动设备,您需要搜索“移动”一词以及“Android”。但是有一些平板电脑公司正在远离这个惯例,所以对于像XOOM这样的平板电脑公司,如果你想检测这些平板电脑,你需要检查平板电脑的型号。

您还可以查看:http://wurfl.io/。我认为通过执行以下操作可能会有所帮助:

<script type='text/javascript' src="//wurfl.io/wurfl.js"></script>

if(WURFL.form_factor != "Tablet"){
     // do mobile things here
}

对于上下文,脚本返回一个json对象,如下所示:

{
 "complete_device_name":"Samsung Galaxy Tab",
 "is_mobile":true,
 "form_factor":"Tablet"
}