机型判断 useAgent 进行判断各个厂家机型 如有缺少自行查找机型
judeBrand() {
const userAgent = navigator.userAgent.toLowerCase()
const isIphone = userAgent.match(/(iphone|ipad|ipod)/i);
const isHuawei = userAgent.match(/huawei/i);
const isHonor = userAgent.match(/honor/i);
const isOppo = userAgent.match(/oppo/i);
const isOppoR15 = userAgent.match(/pacm00/i);
const isVivo = userAgent.match(/vivo/i);
const isXiaomi = userAgent.match(/mi\s/i);
const isXIAOMI = userAgent.match(/xiaomi/i);
const isXiaomi2s = userAgent.match(/mix\s/i);
const isRedmi = userAgent.match(/redmi/i);
if (isIphone) {
return 'iphone'
} else if (isHuawei || isHonor) {
return 'huawei';
} else if (isOppo || isOppoR15) {
return 'oppo';
} else if (isVivo) {
return 'vivo';
} else if (isXiaomi || isRedmi || isXiaomi2s || isXIAOMI) {
return 'xiaomi';
} else {
return 'other'
}
},
跳转方法
downLoadUrl(url,type) {
if(type === 1){ //如果是苹果端的话
let loadDateTime = new Date();
window.location = "xxxx://";//schema链接 已经在manifest.json中设置好了 直接打包即可
window.setTimeout(function() { //如果没有安装app,便会执行setTimeout跳转下载页
let timeOutDateTime = new Date();
if (timeOutDateTime - loadDateTime < 5000) {
const a = document.createElement('a')
a.href= url
a.click()
} else {
window.close();
}
}, 2500);
}else{ // 安卓端
var loadDateTime = new Date();
window.location = "xxxx://";//schema链接 已经在manifest.json中设置好了 直接打包即可
window.setTimeout(function() {//如果没有安装app,便会执行setTimeout跳转下载页
uni.hideLoading()
var timeOutDateTime = new Date();
if (timeOutDateTime - loadDateTime < 5000) {
const a = document.createElement('a')
a.href= url
a.click()
} else {
window.close();
}
}, 500);
}
},
最后一步跳转商城 id参数为应用商城的标识名字
DownApp(){
const u = navigator.userAgent;
const isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内
const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端
const isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
const iosLinkUrl = "https://xxxx" // ios下载 更换链接
const androidLinkurl = "https://xxxxx" // 安卓下载 更换链接
const huaweiUrl = 'appmarket://details?id=com.xx.xxx'
const oppoUrl = "oppomarket://details?packagename=com.xx.xxx"
const vivoUrl = "vivomarket://details?id=com.xx.xxx"
const xiaomiUrl = 'mimarket://details?id=com.xx.xxx'
//微信环境下
if(isWeixin){
uni.showToast({
title:"请在自带浏览器上打开",
icon:"none"
})
}else{
switch (this.judeBrand()) {
case 'iphone':
this.downLoadUrl(iosLinkUrl,1) //跳转app
break
case 'xiaomi':
this.downLoadUrl(xiaomiUrl)
break
case 'huawei':
this.downLoadUrl(huaweiUrl)
break
case 'vivo':
this.downLoadUrl(vivoUrl)
break
case 'oppo':
this.downLoadUrl(oppoUrl)
break
default:
this.downLoadUrl(androidLinkurl)
break
}
}
},
微信跳转app是有限制的 微信内部跳转app需要调用微信内部的 如果不想用微信的话可以直接上架应用宝 微信直接跳转应用宝