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,因此也不会在意之前的页面会不会跳转(强迫症患者可能会在意)