uniapp H5指定商城下载app 如果已经下载跳转app

机型判断 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需要调用微信内部的 如果不想用微信的话可以直接上架应用宝 微信直接跳转应用宝

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值