我正在使用以下代码来检测移动设备,我想要仅检测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>
答案 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