首先,需要判断是安卓还是ios,我们是无法知道是否打开app的,只能通过延迟的方法
var ua = window.navigator.userAgent;
var isiOS = !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (!isiOS) {
var t = Date.now(); //取当前时间戳
//延迟直接跳转唤起app协议地址
var times=setTimeout(() => {
location.href = `dl${this.app_key.toLowerCase()}://rytad?`; //协议启动地址
}, 96);
//延迟执行 如果1s没响应,就表示你手机中没有该app。就可以去下载了
var d = Date.now();
setTimeout(() => {
if (d - t < 1000) {
location.href = “”
}
}, 1001);
} else {
var t = Date.now(); //取当前时间戳
//延迟直接跳转唤起app协议地址
setTimeout(() => {
location.href = “”; //ios协议启动地址
}, 96);
//延迟执行 如果1s没响应,就表示你手机中没有该app。就可以去下载了
var d = Date.now();
setTimeout(() => {
if (d - t < 1000) {
location.href = “”
}
}, 1001);
}
还有一个问题就是在微信里是不能直接唤醒的,所以要给他个遮罩层引导他去浏览器
判断是否是微信的方法
isWeiXin() {
//判断是否是微信
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
},