【问题标题】:Detecting Mobile Devices with JavaScript [duplicate]使用 JavaScript 检测移动设备 [重复]
【发布时间】:2015-04-07 01:01:28
【问题描述】:

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

但如果是 Android,我想显示 Android Google Play 徽章,如果是 iOS,我想显示 Apple Store 徽章,但由于某种原因,以下代码不起作用。谁能告诉我我做错了什么?

    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>

【问题讨论】:

  • 您正在为两种设备类型设置相同的图像......黑莓在哪里? Windows Mobile 在哪里?塞班在哪里?
  • Marc 我只在寻找 Androind 和 iOS。我要推广的应用程序仅适用于这两个,我复制了错误的代码。我在这里使用了正确的代码。

标签: javascript android ios jquery-mobile


【解决方案1】:

使用 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 手机、黑莓等),您可以检查是否有触摸事件可用,然后检查它是否是 iOS(因为更可靠),如果它 != iOS 但确实有触摸,则可以显示 Play 商店图标。

对不起,我还要提一下,我已经成功使用了那个 JS,但它来自这里:http://davidwalsh.name/detect-android

【讨论】:

  • 您的 Android 检测代码与 OP 已经使用的代码有何不同?
  • 对不起,我复制了原始代码,而不是我正在使用的实际代码。我在这里更正了代码
猜你喜欢
  • 2013-03-14
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多