JS实现下面功能:
首先判断是否为微信浏览器,然后在判断是ios还是安卓,同事执行不同的下载app的链接
js是无法判断是否安装了某个App的,网上找的的什么设置延时执行,iframe等根!本!没!用!也看了一些大厂的如网易新闻,今日头条等还是需要先跳转到App store里如果你已下载App显示的事打开字样,如果未下载显示的去下载
function openApp() {
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') { // 判断是否是微信内置浏览器
// 微信目前不支持打开非鹅厂应用,所以先判断是否在微信中打开此页面
alert('点击右上角选择在浏览器中打开')
} else {//非微信浏览器
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) { //判断是否是ios端
//window.location = "opengnsx://"; //尝试直接唤醒打开App 此链接由ios开发者提供,此处有bug,ios执行此处下面的下载链接也会执行目前没有好的解决发
var loadDateTime = new Date();
window.setTimeout(function () {
var timeOutDateTime = new Date();
if (timeOutDateTime - loadDateTime < 5000) {
window.location = "要跳转的页面URL";//ios下载地址
} else {
window.close();
}
}, 25);
} else if (navigator.userAgent.match(/android/i)) { //判断是否是android端
try {
window.location = 'opengnsx://'; //此链接由android开发者提供
setTimeout(function () {
window.location = "要跳转的页面URL"; //android下载地址
}, 500);
} catch (e) { }
}
}
}
虽然解决了问题,但是此方法有一个不足的地方(BUG):
无论是否安装APP,引导下载的页面都会跳转到下载页
如果安装了APP则会直接打开APP,因此也不会在意之前的页面会不会跳转(强迫症患者可能会在意)