【译】使用JavaScript检测移动设备

651 阅读1分钟

原文

尽管我知晓并认同功能检测要比浏览器检测更重要,但有时还是需要知道我们是否在处理移动设备。 要进行深入的设备检测,您可以依赖复杂的库,例如The MobileESP Project。 但是对于更简单的应用程序,以下代码片段可能会有用。

var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    BlackBerry: function() {
        return navigator.userAgent.match(/BlackBerry/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad|iPod/i);
    },
    Opera: function() {
        return navigator.userAgent.match(/Opera Mini/i);
    },
    Windows: function() {
        return navigator.userAgent.match(/IEMobile/i);
    },
    any: function() {
        return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
    }
};

尽管这并不能涵盖所有移动端,但会从时下最流行的移动设备中择其一。

例子:

要检查用户是否在任何受支持的移动设备上,请执行以下操作:

if( isMobile.any() ) alert('Mobile');

要检查用户是否在特定的移动设备上,请执行以下操作:

if( isMobile.iOS() ) alert('iOS');