【问题标题】:simplest way to detect if mobile device with javascript [duplicate]检测移动设备是否使用javascript的最简单方法[重复]
【发布时间】:2013-05-26 02:19:15
【问题描述】:

检测设备是否是带有 javascript 的移动设备的最简单方法是什么?

我在考虑检查高度是否小于或等于 iPhone 的浏览器视口高度。说到这里,iPhone 或移动设备的常见视口高度是多少?

我在 javascript 中使用 window.height; 时遇到了一些问题,因为它返回未定义,但是?

任何人都知道如何最好地简单地检测浏览器是否是带有 javascript 的移动设备?

【问题讨论】:

标签: javascript


【解决方案1】:

这是我的爱好项目:

var Environment = {
    //mobile or desktop compatible event name, to be used with '.on' function
    TOUCH_DOWN_EVENT_NAME: 'mousedown touchstart',
    TOUCH_UP_EVENT_NAME: 'mouseup touchend',
    TOUCH_MOVE_EVENT_NAME: 'mousemove touchmove',
    TOUCH_DOUBLE_TAB_EVENT_NAME: 'dblclick dbltap',

    isAndroid: function() {
        return navigator.userAgent.match(/Android/i);
    },
    isBlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    isIOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    isOpera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    isWindows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    isMobile: function() {
        return (Environment.isAndroid() || Environment.isBlackBerry() || Environment.isIOS() || Environment.isOpera() || Environment.isWindows());
    }
};

您关于使用维度的解决方案不是一个好的解决方案。它依赖于实际的设备尺寸和许多其他变量。

【讨论】:

  • 这看起来不错!谢谢你的分享。但是我将如何实现或使用它?例如我只是做if(isMobile()){ //myCodeHere }
  • 你的代码和这个有什么区别,或者这只是一个更简洁的版本? if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ){ // some code.. }
  • 不同的是我的代码更实用,更易读。每当您想检测移动环境时,您都必须编写那么长的 if 语句,并且可能容易出错,对于地雷来说,它只是 Environment.isMobile() 函数调用。要使用它,您可以将该代码包含在您的一个 javascript 文件中。然后简单地做if(Environment.isMobile()){ ... }
猜你喜欢
  • 2011-05-06
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
  • 2022-09-30
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多