当前位置:首页 > 技术分享 > 正文内容

uni-app 中如何打开外部应用,如:浏览器、淘宝、京东、微博等

admin6个月前 (11-01)技术分享769

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://blog.bitefu.net/post/622.html

分享给朋友:

相关文章

解决 SVN Skipped 'xxx' -- Node remains in conflict

更新命令:svn up提示代码:意思就是说 ,这个文件冲突了,你要解决下Updating '.': Skipped 'data/config.php' -- ...

centos 配置Let's Encrypt 泛域名https证书

centos 配置Let's Encrypt 泛域名https证书

前言2018年1月份Letsencrypt可以申请泛域名证书,这让我们部署多域名、多站点https省了很多功夫,终于可以不用维护多个域名的https证书。笔者以acme.sh为例,手把手教你配置https证书~本教程适用于centos 6....

用CMD命令查询域名的DNS解析记录:A,NS,MX,CNAME,TXT

1、查询域名的A记录nslookup -qt=A bitefu.net当然查询A记录你直接用ping命令来ping域名也可以获得A记录。2、查询域名的NS记录nslookup -qt=NS bitefu.net3、查询域名的MX记录nslo...

Chrome 最全历史版本下载以及chromedriver下载

https://vikyd.github.io/download-chromium-history-version/#/ https://dl.lancdn.com/landian/soft/chrome/m/ chromedriver的版...

全世界最快dns分享 Public DNS Server List

偶然发现一个共享全世界最快dns的网站,当然也包含中国了https://public-dns.info/ 中国https://public-dns.info/nameserver/cn.html...

​CentOS 安装libsodium 支持 crypto_aead_aes256gcm_decrypt 兼容php5.6,php7.2

微信小微商户下载证书返回的密文用 AEAD_AES_256_GCM 算法 解密的方法。其中用到了 string sodium_crypto_aead_aes256gcm_decrypt ( string $ci...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。