赞
踩
在唤起应用页面用JS代码请求该协议,如果在3000ms内有应用程序能解析这个协议,那么就能打开该应用;如果超过3000ms就跳转到app下载页。
//直接调用这个方法即可 async checkInstallApp() { var u = navigator.userAgent; var isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内 if(isWeixin){ alert('请在浏览器上打开') return false; } const platform = uni.getSystemInfoSync().platform; if (platform === 'ios') { this.ios() } if (platform === 'android') { this.android() } },
ios() { uni.showLoading({ title: '加载中' }); const currentTime = +(new Date()); window.location.href = ""; //找ios工程师要 UrlSchemes //启动间隔20ms运行的定时器,并检测累计消耗时间是否超过3000ms,超过则结束 let _count = 0,timer; timer = setInterval(function() { _count++; const endTime = +(new Date()) - currentTime; if (_count >= 100 || endTime > 3000) { uni.hideLoading() clearInterval(timer); let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHidden; if(typeof hidden =="undefined" || hidden ==false){ //App store下载地址 window.location.href = "";//下载地址 可以直接跳转到appstore的 } } }, 20); }
android() { uni.showLoading({ title: '加载中' }); const currentTime = new Date().getTime(); window.location.href = "";//找android工程师要 UrlSchemes // 启动间隔20ms运行的定时器,并检测累计消耗时间是否超过2000ms,超时则结束 let _count = 0, timer; timer = setInterval(() => { _count++; const endTime = new Date().getTime() - currentTime; if (_count >= 200 || endTime > 5000) { uni.hideLoading() clearInterval(timer); let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHidden; if(typeof hidden =="undefined" || hidden ==false){ //App store下载地址 window.location.href = "";//下载地址 } } }, 20) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。