需求是在项目活动页中下载app或者如果已经已经安装app打开app
代码如下
1 navToDownApp() { 2 let u = navigator.userAgent 3 if (/MicroMessenger/gi.test(u)) { 4 // 如果是微信客户端打开,引导用户在浏览器中打开 5 alert('请在浏览器中打开') 6 } 7 if (u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) { 8 // Android 9 if (this.openApp('en://startapp')) { 10 this.openApp('en://startapp') // 通过Scheme协议打开指定APP 11 } else { 12 //跳转Android下载地址 13 } 14 } else if (u.indexOf('iPhone') > -1) { 15 if (this.openApp('ios--scheme')) { 16 this.openApp('ios--scheme') // 通过Scheme协议打开指定APP 17 } else { 18 // 跳转IOS下载地址 19 } 20 } 21 }, 22 openApp(src) { 23 // 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为 24 // 否则打开a标签的href链接 25 let ifr = document.createElement('iframe') 26 ifr.src = src 27 ifr.style.display = 'none' 28 document.body.appendChild(ifr) 29 window.setTimeout(function() { 30 // 打开App后移出这个iframe 31 document.body.removeChild(ifr) 32 }, 2000) 33 }