使用JavaScript检测移动设备

时间:2015-02-06 19:31:38

标签: javascript android ios jquery-mobile

我正在使用以下代码来检测移动设备,我想要仅检测Android或仅检测iOS。我用if( isMobile.iOS() ) alert('iOS');测试了移动检测,并显示了警报。

但我想显示Android Google Play徽章(如果是Android)和Apple商店徽章(如果是iOS)但由于某些原因以下代码不起作用。有人能告诉我我做错了吗?

    var isMobile = {
    Android: function() {
        return navigator.userAgent.match(/Android/i);
    },
    iOS: function() {
        return navigator.userAgent.match(/iPhone|iPad /i);
    },
};

if (isMobile.Android()) {
    document.getElementById("googlePlayBadge").innerHTML = "<img src='modal-img/googlePlayBadge.png' alt='Google Play' class='img-responsive' />";
} else {
    if (isMobile.iOS()) 
    document.getElementById("appStoreBadge").innerHTML = "<img src='modal-img/appStoreBadge.png' alt='App Store' class='img-responsive' />";
};

<section class="text-center">
   <div id="appStoreBadge"></div>
   <div id="googlePlayBadge"></div>
 </section>

1 个答案:

答案 0 :(得分:0)

使用JS可靠地检测设备很难,伙计。最理智的人会避免它。

有些图书馆可以做到这一点,但如果这需要太多开销:

var useragent = navigator.userAgent.toLowerCase();

var isAndroid = useragent.indexOf("android") > -1; //&& ua.indexOf("mobile");

if(isAndroid) {

alert('I am an android device');

}

如果由于某种原因你根本不关心除了android或iOS以外的任何东西(例如Windows手机,黑莓等),你可以检查触摸事件是否可用,然后检查它是否是&#39 ; iOS(因为它更可靠),如果它!= iOS但有触摸,你可以显示播放商店图标。

抱歉,我还应该提到我已经成功使用了JS,但它来自这里:http://davidwalsh.name/detect-android