suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - IOS设备用Safari打开二维码链接,在本机已安装app的情况下依旧跳转到app store

根据公司的需求,扫描一个二维码链接,如果本机装有app的情况下跳转到app,如果没有则跳转到app store下载页面,目前测试是用QQ浏览器可以实现效果,但用safari浏览器依旧跳转到app store,直接上代码.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name='apple-itunes-app' content='app-id=XXXXXXX'>
  <title>123</title>
  <link rel="stylesheet" href="style/ewm.css">
</head>
<body style="background-color: #7f7f7f;">
<p id="weixin_pageto">
  <p class="txt">
    1、点击右上角<img src="images/_more@3x.png" style="width: 0.7rem;"/>打开菜单<br/>
    2、选择<img src="images/safari@3x.png" style="width: 0.7rem;"/>在浏览器中打开
  </p>
  <img src="images/shape_up@3x.png" alt="" class="uparrow">
  <img src="images/shape1_down@3x.png" alt="" class="downarrow">
</p>
<script src="js/jquery.min.js"></script>
<script src="js/commonUtil.js"></script>
<script type="text/javascript">
  //跳转app地址
  var $ios_app = "CityNRH://?xxxxxx;

  //app下载地址
  var $ios_url = "https://itunes.apple.com/us/app/xxxxxxx/xxxxxxx";

  //创建
  var createIframe = (function () {
    var iframe;
    return function () {
      if (iframe) {
        return iframe;
      } else {
        iframe = document.createElement('iframe');
        iframe.style.display = 'none';
        document.body.appendChild(iframe);
        return iframe;
      }
    }
  })();

   if (/ipad|iphone/i.test(navigator.userAgent)) {
    //创建iframe跳转窗口并有具体链接地址
    var iframe = createIframe();
    //非微信浏览器访问
    if (navigator.userAgent.match(/MicroMessenger/i) != 'MicroMessenger') {
      iframe.src = $ios_app;
      setTimeout(function () {
        //此处如果执行则表示没有app
        window.location = $ios_url;
      }, 2000);
    } else {
      //是微信,则显示相应提示页面
      document.getElementById('weixin_pageto').style.display = "block";
    }
  }
  else {
    window.location = $ios_url;
  }
</script>
</body>
</html>

网上找了很久类似的,貌似12-13年的解决方案是给一个meta标签

    <meta name='apple-itunes-app' content='app-id=XXXXXXX'>

但是测试过后依旧无效,跪求各路大神帮助!

天蓬老师天蓬老师2772 Tage vor792

Antworte allen(0)Ich werde antworten

Keine Antwort
  • StornierenAntwort