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

标签 javascript android jquery mobile responsive-design

我只想将元标记应用于移动设备而不是平板电脑。目的是缩小移动设备中的页面。我遇到了以下情况,但问题是它也适用于平板电脑,因为还有 Android 平板电脑。

<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>

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

最佳答案

移动 Android 在 User-Agent header 中有“Mobile”字符串。安卓平板没有。因此,要仅获取移动设备,您需要搜索“Mobile”和“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"
}

关于javascript - 仅自动检测移动浏览器(通过用户代理?)而不是平板电脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765887/

相关文章:

java - 如何更改 getWritableDatabase() 指向路径?

javascript - Jquery按钮点击事件被另一个点击事件覆盖

jQuery 移动 : Dynamicly loading content (Forms) via PHP no styles not applying

java - 如何使用 greenDAO 截断表

android - 如何从手机调用我在 Google DRAFT 上的操作?

jquery - 如何使 Laravel 中的动态表单字段可填写

javascript - 在 Prop 中提取对象

javascript - 如何切换按钮 onClick 的外观?

javascript - 从 JSON 生成的下拉选项中删除重复项

javascript - 如何在html5 Canvas 上缓慢填充文本