h5判断是否安装app,如果有,跳转app,反之跳转下载页面
经历:当开始接到这个需求的时候,在网上看了下,在网上说的去写了,但是达不到我的效果,所以稍微修改了下!如下:
话不多说直接上代码了:
//微信游览器会有拦截,所以需要在非微信游览器打开,(目前还不知道哪些游览器有拦截,只知道微信是不支持的)
if(this.isWeixin){
this.setPopup("请在浏览器里面打开")
return
}
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
/**
* ios无法直接判断是否安装了app,所以做了一个中间页做跳转,
* 在服务器上面,如果下载了这个页面会直接打开app,
* 反之会跳转到中间页上,让客户自己去下载
*/
this.navToApp('ios的中间页')
} else if (navigator.userAgent.match(/android/i)) {
window.open("schema链接或者universal link(就是打开app的schema,问app开发同事要就可以了)",'_self')
setTimeout(()=>{
let hidden=window.document.hidden||window.document.webkitHidden||window.document.mozHidden||window.document.msHidden
if(typeof(hidden) =="undefined"||hidden==false){
window.location.href="下载app链接,问app开发要就可以了"
}
},2000)
}
可能条件不是那么的严谨,目前没想到更好的条件了,有更好的条件来判断的同学可以下方评论一起交流下哦!