uni-app 中如何打开外部应用,如:浏览器、淘宝、京东、微博等
cheme协议
scheme协议,如taobao://,
打开外部scheme的API是plus.runtime.openURL()
常用URLscheme
[
// 只在 ios 中生效
{
name: 'App Store',
scheme: 'itms-apps://'
},
{
name: '支付宝',
pname: 'com.eg.android.AlipayGphone',
scheme: 'alipay://'
},
{
name: '淘宝',
pname: 'com.taobao.taobao',
scheme: 'taobao://'
},
{
name: 'QQ',
pname: 'com.tencent.mobileqq',
scheme: 'mqq://'
},
{
name: '微信',
pname: 'com.tencent.mm',
scheme: 'weixin://'
},
{
name: '京东',
pname: 'com.jingdong.app.mall',
scheme: 'openApp.jdMobile://'
},
{
name: '新浪微博',
pname: 'com.sina.weibo',
scheme: 'sinaweibo://'
},
{
name: '优酷',
pname: 'com.youku.phone',
scheme: 'youku://'
}
]uni-app拉起微博APP
启动微博并打开搜索页面搜索uni-app
scheme协议
// 如果手机安装了微博,那么可以直接拉起微博,跳转到指定页面,如果没有安装微博,那点击没有反应。
let openUrl=`sinaweibo://searchall?q=uni-app`
plus.runtime.openURL(encodeURI(openUrl), function (res) {
// 打开指定URL地址失败时回调,并返回失败信息。
});http/https地址
let openUrl='https://s.weibo.com/weibo?q=uni-app'
//先拉起浏览器,如果安装微博,就再拉起微博指定页面,如果没有微博,就停留在当前h5页面
plus.runtime.openURL(encodeURI(openUrl), function (res) {
// 打开指定URL地址失败时回调,并返回失败信息。
});注意:
ios中地址要求规范,需要转码使用encodeURI()处理一下地址。
否则提示
{
“code”: -1,
“message”: “无效的参数”
}
openJDApp(appurl) {
if (plus.runtime.isApplicationExist({ pname: 'com.jingdong.app.mall', action: 'openApp.jdMobile://' })) {
if (plus.os.name == 'Android') {
plus.runtime.openURL(appurl, error => {
console.log('Open system default browser failed: ' + error);
}, 'com.jingdong.app.mall');
} else if (plus.os.name == 'iOS') {
plus.runtime.openURL(appurl);
}
}else {
location.href = appurl;
//TODO
}
},

![百度云网盘高速下载方法[测试可用]](https://z3.ax1x.com/2021/04/18/c5TMSe.jpg)
