【问题标题】:My "isMMobile ()" function is detecting desktop user agent as mobile我的“isMMobile ()”函数将桌面用户代理检测为移动设备
【发布时间】:2018-11-22 23:23:52
【问题描述】:

这是什么设备?我的功能是将此设备检测为移动设备

“Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) 像 Gecko”

function isMMobile() {

    var device_agent = navigator.userAgent.toLowerCase();
    if (/android|webos|iphone|ipad|ipod|blackberry|windows phone|opera mini|iemobile|tablet|nokia|kindle|mobile/i.test(device_agent)) {
        return true;
    }

    if (window.DocumentTouch && document instanceof window.DocumentTouch) {
        return true;
    }

    if (typeof window.orientation === "number" || 
        'ontouchstart' in window || 
        window.ontouchstart || 
        'ontouchstart' in document.documentElement || 
        "ontouch" in window || 
        window.onmsgesturechange || 
        window.navigator.msMaxTouchPoints || 
        window.navigator.MaxTouchPoints > 0) {
        return true;
    }

    return false;
}

var innerw = window.innerWidth || document.documentElement.clientWidth;
var ismob = isMMobile();

通过 ajax 发送的数据:

ismob=yes&innerw=800

【问题讨论】:

    标签: javascript mobile


    【解决方案1】:

    即 Windows 7 上的 IE 11,带有触摸屏。大多数 Windows 笔记本电脑现在都有触摸功能(并且有一段时间),所以如果你的逻辑基本上是“触摸 == 移动”,那么你会错误地识别很多设备。那里有很多移动检测脚本,这也很有帮助,因为其他人必须跟上新的用户代理和设备。如果可以的话,让他们处理检测中的难题!

    【讨论】:

      猜你喜欢
      • 2018-05-01
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 1970-01-01
      相关资源
      最近更新 更多