uniapp唤起APP

实现思路
设置UrlSchemes
代码实现

const u = navigator.userAgent;
// 获取运行环境对象
const versions = {
	trident: u.indexOf('Trident') > -1, //IE内核
	presto: u.indexOf('Presto') > -1, //opera内核
	webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
	gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
	mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
	ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
	android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
	iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
	iPad: u.indexOf('iPad') > -1, //是否iPad
	webApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部
	weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)
	qq: u.match(/\sQQ/i) == ' qq' //是否QQ
};
// 因为打开的是手机H5页面,所以需要判断是否为手机,并且提示
if (!versions.mobile) {
	uni.showToast({
		title: '请使用手机浏览器打开!',
		icon: 'none',
		duration: 3000
	});
	return;
}
// iOS使用Universal Link。Universal Link是通过标准的http/https协议链接唤起App;若未安装App,访问此通用链接,可以自定义页面;
// Android的第一个参数应当URL Scheme,第二个参数为APP下载链接
var appInfo = {
	ios: ['https://www.baidu.com/'],
	android: ['fxs://com.fangxiansheng.app', 'https://www.baidu.com/']
};
// 在微信浏览器无法打开APP,所以需要提示在外部浏览器打开
if (versions.weixin) {
	uni.showToast({
		title: '请使用外部浏览器打开!',
		icon: 'none',
		duration: 3000
	});
	return;
}
// 判断手机机型
if (versions.ios) {
	console.log('ios');
	let iOSVersion = u.match(/OS (\d+)_(\d+)_?(\d+)?/);
	// 跳转APP并拼接参数
	window.location.href = appInfo.ios[0] + e;
} else if (versions.android) {
	console.log('android', appInfo.android[0] + e);
	// 跳转APP并拼接参数
	window.location.href = appInfo.android[0] + e;
	//设置定时器的目的是如果第一个app没有安装,则自动跳转第二个
	setTimeout(() => {
		uni.showModal({
			content: '确定下载大病悬赏APP吗?',
			success: res => {
				if (res.confirm) {
					window.location.href = appInfo.android[1];
				} 
			}
		});
	}, 3000);
}

你可能感兴趣的:(uni-app,javascript,前端)