基于navigator.userAgent的Javascript重定向

时间:2019-05-30 14:54:58

标签: javascript

当用户访问基于其所使用设备的网页时,我正在尝试将其重定向到相关的应用商店:

  //iPhone Version:
     if((navigator.userAgent.match(/iPhone/i)) ||  (navigator.userAgent.match(/iPod/i))) {
        window.location.href = "https://itunes.apple.com/gb/app/APP123";
      }

  //Android Version:
     if(navigator.userAgent.match(/android/i)) {
        window.location.href = "https://play.google.com/store/apps/details?id=com.APP.123";
       }
   //Anything Else  
     else {
        window.location.href = "https://example.com";
       }

这在iPhone以外的其他所有设备上均能完美运行。

我知道userAgent检测到iPhone部件,但随后它忽略了重定向到Apple App Store并重定向到example.com

任何建议都会被采纳

1 个答案:

答案 0 :(得分:0)

您需要使用else if而不是if

if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
  window.location.href = "https://itunes.apple.com/gb/app/APP123"
} else if (navigator.userAgent.match(/android/i)) {
  window.location.href = "https://play.google.com/store/apps/details?id=com.APP.123"
} else {
  window.location.href = "https://example.com"
}

如果不使用else if块,则将有2条if语句:

  • 一个检查它是否是iPhone的人,否则什么也不做(因为没有else阻止)
  • 另一个检查它是否为Android并重定向到https://example.com