使用场景
在移动端web页面上,点击按钮直接打开手机端app,如果调用失败则前往对应app的应用市场.
实现方法
H5唤醒APP,需要使用 scheme协议 (有app端提供),但此协议在微信内置浏览器中是无法调用的,微信现在可以通过微信开放标签实现,所有在开始需要判断设备的环境和浏览器环境,如果是安卓或者IOS,在执行scheme协议。
下面代码以实现唤醒淘宝为例
<template>
<div>
<button @click="satrtApp">打开淘宝APP</button>
</div>
</template>
<script>
export default {
name:"demo",
data(){
return{
}
},
methods:{
startApp(){
var u = navigator.userAgent;
var isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if (isWeixin) {
alert('请在浏览器上打开')
} else {
//android端
if (isAndroid) {
//安卓app的scheme协议
window.location.href = 'tbopen://m.taobao.com/tbopen/index.html?h5Url=这里放具体的地址';
setTimeout(function () {
let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden || window.document.webkitHidden
if (typeof hidden == "undefined" || hidden == false) {
//应用宝下载地址
window.location.href = "https://a.app.qq.com/o/simple.jsp?pkgname=com.taobao.taobao&g_f=1000047";
}
}, 2000);
}
//ios端
if (isIOS) {
//ios的scheme协议
window.location.href = 'taobao://s.taobao.com?id=商品id'
setTimeout(function () {
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 = "http://itunes.apple.com/app/id387682726";
}
}, 2000);
}
}
}
}
}
</script>
总结一下大厂APP的scheme协议
应用类
APP | scheme |
---|---|
微博 | weibo:// |
mqq:// | |
支付宝 | alipay:// |
微信 | weixin:// 或者 wechat:// |
微信-朋友圈 | weixin://dl/moments |
微信-公众号 | weixin://dl/officialaccounts |
微信-游戏 | weixin://dl/games |
chrome | googlechrome:// |
有道云笔记 | youdaonote:// |
今日头条 | snssdk141:// |
网易云音乐 | orpheuswidget:// |
网易新闻 | newsapp:// |
QQ音乐 | qqmusic:// |
美团外卖 | meituanwaimai:// |
美团 | imeituan:// |
网易邮箱 | neteasemail:// |
QQ邮箱 | qqmail:// |
腾讯视频 | tenvideo:// |
爱奇艺 | iqiyi:// |
12306 | cn.12306:// |
钉钉 | dingtalk:// |
京东商城 | openApp.jdMobile:// |
系统类
应用名称 | scheme |
---|---|
app store | itms-apps:// |
短信 | sms:// |
电话 | tel:// |
无线局域网 | App-Prefs:root=WIFI |
蓝牙 | App-Prefs:root=Bluetooth |
蜂窝移动网络 | App-Prefs:root=MOBILE_DATA_SETTINGS_ID |
个人热点 | App-Prefs:root=INTERNET_TETHERING |
运营商 | App-Prefs:root=Carrier |
通知 | App-Prefs:root=NOTIFICATIONS_ID |
通用-关于本机 | App-Prefs:root=General&path=About |
通用-键盘 | App-Prefs:root=General&path=Keyboard |
通用-辅助功能 | App-Prefs:root=General&path=ACCESSIBILITY |
通用-语言与地区 | App-Prefs:root=General&path=INTERNATIONAL |
通用-还原 | App-Prefs:root=Reset |
Siri | App-Prefs:root=SIRI |
隐私 | App-Prefs:root=SIRI |
Safari | App-Prefs:root=SAFARI |
音乐 | App-Prefs:root=MUSIC |
音乐-均衡器 | App-Prefs:root=MUSIC&path=com.apple.Music:EQ |
照片与相机 | App-Prefs:root=Photos |
FaceTime | App-Prefs:root=FACETIME |