公司有个需求,就是js判断手机上是否安装某个APP,如果安装,直接拉起此APP,否则,跳转到下载页面;
此前查过很多资料,在拉起APP后,返回的时候直接进入到了下载页面,最终在不懈努力下,终于搞定此问题!
拉起APP,需要安卓人员提供app协议;
<a href="javascript:testApp('wx4650e91://app','http://bl-12523828.cossh.my.com/gj.apk')">打电话</a>
红色字体为安卓提供的app协议;
绿色字体为下载apk地址
// 判断APP是否已经下载
function testApp(url1,url2) {
var timeout, t = 500, hasApp = true;
setTimeout(function () {
if (hasApp) {
} else {
// alert('未安装app');
// console.log(document.hidden);
// 监测界面是否已被隐藏,防止继续跳出下载
if (!document.hidden) {
window.location.href=url2;
}
console.log(window.location.href);
}
// document.body.removeChild(ifr);
}, 1000)
var t1 = Date.now();
// window.close();
var ifr = document.createElement("iframe");
ifr.setAttribute('src', url1);
ifr.setAttribute('style', 'display:none');
document.body.appendChild(ifr);
timeout = setTimeout(function () {
var t2 = Date.now();
if (t2 - t1 < t + 100 ) {
hasApp = false;
}
}, t);
}
// 判断APP是否已经下载