判断有app自动打开app,没有则下载app

186 阅读1分钟
//判断有app自动打开app,没有则下载app    downApp() {      if (        window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) ==        "micromessenger"      ) {        //微信浏览器        return;      }      let url = ""; //跳转协议存放      let downApk = ""; //下载apk链接存放      // 检查是否安装app      function openApp(e) {        var u = window.navigator.userAgent;        var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1; //android终端或者uc浏览器        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);        if (isAndroid) {          url = "yunjj://cn.yunjj.app.customer/toMain";          downApk =            "https://yunjinji-1301742439.cos.ap-guangzhou.myqcloud.com/android/package/customer.apk";          android();        }        if (isiOS) {          url = "ios://cn.yunjj.app.customer/toMain";          downApk = "itms-apps://itunes.apple.com/cn/app/id1519984506";          ios();        }      }      function android() {        var _clickTime = new Date().getTime();        window.location.href = url; /***打开app的协议,有安卓同事提供***/        //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束        var _count = 0,          intHandle;        intHandle = setInterval(function () {          _count++;          var elsTime = new Date().getTime() - _clickTime;          if (_count >= 100 || elsTime > 3000) {            console.log(_count);            console.log(elsTime);            clearInterval(intHandle);            //检查app是否打开            if (document.hidden || document.webkitHidden) {              // 打开了              window.close();            } else {              // 没打开              // alert('没打开')              window.location.href = downApk; //下载链接            }          }        }, 20);      }      function ios() {        var _clickTime = +new Date();        var ifr = document.createElement("iframe");        ifr.src = url; /***打开app的协议,有ios同事提供***/        ifr.style.display = "none";        document.body.appendChild(ifr);        //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束        var _count = 0,          intHandle;        intHandle = setInterval(function () {          _count++;          var elsTime = +new Date() - _clickTime;          console.log(_count, elsTime, +new Date(), _clickTime);          if (_count >= 100 || elsTime > 3000) {            clearInterval(intHandle);            document.body.removeChild(ifr);            //检查app是否打开            if (document.hidden || document.webkitHidden) {              // 打开了              window.close();            } else {              // 没打开              // alert('没打开')              window.location.href = downApk; //下载链接            }          }        }, 20);      }      openApp();    }