Android平台通过UrlSchemes与第三方应用相互调用

Android平台可以通过Url Scheme来调用第三方应用,设置步骤如下:

5+应用配置支持urlscheme

\n

双击应用的manifest.json文件,切换到“代码视图”,在根节点下添加plus->distribute->google下添加schemes节点数据如下:

其值为字符串数组,每个字符串为一个urlscheme,使用小写字母,可设置多个。
保存后提交App云端打包生效

浏览器中通过href启动应用

\n

安装应用后,我们可以在html页面中,通过href直接调用应用:
<a href="test://abc">test:<a><br/>

5+应用中处理urlscheme启动传递的参数

\n

在其它应用中通过href调用Url Scheme传递过来的值,可以通过plus.runtime.arguments获取
其值为完整的urlscheme字符串,如上面href的值启动应用后获取的plus.runtime.arguments值为“test://abc”
代码示例如下:

document.addEventListener('plusready',function(){
checkArguments();
},false);
// 判断启动方式
function checkArguments(){
console.log("plus.runtime.launcher: "+plus.runtime.launcher);
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如打开新页面等
}
}
// 处理从后台恢复
document.addEventListener('newintent',function(){
console.log("addEventListener: newintent");
checkArguments();
},false);
\n

iOS平台请参考:
iOS平台通过UrlSchemes与第三方应用相互调用


8 分享
五块钱的果汁 TommyJin dreamit1986 DCloud_客服_Trust 513238368@qq.com 火岚 891024617@qq.com 小明子
sanjingye@aliyun.com

sanjingye@aliyun.com

test://abc 里的abc是什么啊?
0 赞 2017-09-06 17:00
zb305107@163.com

zb305107@163.com 回复 zb305107@163.com

解决了,参考了 zy枫 的提示,在AndroidManifest.xml中的PandoraEntryActivity里配置。。。文档坑太多啊,一开始直接使用离线打包的,在manifest.json里面配置一直没用,直到试了下云端打包发现居然能用,才考虑到是离线应该在AndroidManifest.xml里配置
0 赞 2017-08-30 16:01
zb305107@163.com

zb305107@163.com

离线打包怎么配置urlscheme?
0 赞 2017-08-30 15:49
小明子

小明子 回复 zy枫

麻烦回复一下我的私信
0 赞 2017-08-29 17:32
小明子

小明子

我的无法获取参数啊
0 赞 2017-08-29 15:18
小米稀饭大米粥

小米稀饭大米粥 回复 anihaoseyao

哥们儿,网页链接打开手机安装完毕的应用实现了吗?如何实现的?
0 赞 2017-05-17 14:28
anihaoseyao

anihaoseyao 回复 TommyJin

你好 能不能私信我你的联系方式之一,我想请教下 ,现在卡住了
0 赞 2017-03-10 16:32
lam

lam 回复 767011007@qq.com

ios plus.runtime.launchApplication( {action:"weixin://RnUbAwvEilb1rU9g9yBU"})你这种方法能打开吗? action:的值是什么,就是RnUbAwvEilb1rU9g9yBU,如果我是其它app,那填什么
0 赞 2016-12-27 16:24
lam

lam 回复 770579166@qq.com

同问,能否给个完整demo
0 赞 2016-12-27 16:23
770579166@qq.com

770579166@qq.com 回复 zy枫

具体怎么弄啊?
0 赞 2016-12-14 13:04
zy枫

zy枫 回复 kaiven

我是在Mainfeast中的PandoraEntryActivity设置shceme的,其他的和上面说的差不多,从网页启动APP和获取参数都没有问题
0 赞 2016-12-13 11:21
kaiven

kaiven

离线打包,怎么配置呢?
0 赞 2016-10-29 22:16
767011007@qq.com

767011007@qq.com

文档里面根本就没有安卓平台用urlSchemes调用第三方程序的例子,写这个出来误导大家的吧?如果真的可以用这种方法,为什么文档里面没介绍?Hello H5里边打开微信的代码也是用的包名打开,为何不直接用urlchemes??function openWeixin() {
if ( plus.os.name == "Android" ) {
plus.runtime.launchApplication( {pname:"com.tencent.mm"}
, function ( e ) {
plus.nativeUI.confirm( "检查到您未安装\"微信\",是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
androidMarket( "com.tencent.mm" );
}
} );
} );
} else if ( plus.os.name == "iOS" ) {
plus.runtime.launchApplication( {action:"weixin://RnUbAwvEilb1rU9g9yBU"}, function ( e ) {
plus.nativeUI.confirm( "检查到您未安装\"微信\",是否到商城搜索下载?", function(i){
if ( i.index == 0 ) {
iosAppstore( "itunes.apple.com/cn/app/wechat/id414478124?mt=8" );
}
} );
} );
}
0 赞 2016-10-14 11:31
sliven

sliven 回复 DCloud_App_Array

你好,请问,提交云端打包后,是不是就直接部署在云端了(因为我本地测试手机没有进行安装,也能够打开使用)
0 赞 2016-08-16 17:35
保级队球迷

保级队球迷 回复 TommyJin

请问你的使用场景是什么?我从A app打开了高德地图app导航,它有个返回A app的功能需要设置shceme,我用上面的方法设置打包之后不起作用。我想问下你测试成功的场景和我这个差不多吗?非常感谢
0 赞 2016-03-31 17:20
TommyJin

TommyJin 回复 DCloud_App_Array

是的 Android 已经测试成功 很棒 多谢啦
0 赞 2015-11-10 17:50
DCloud_App_Array

DCloud_App_Array 回复 TommyJin

需要提交云端打包后才能生效
0 赞 2015-11-10 12:56
TommyJin

TommyJin

为什么 我设置的无效啊 感觉没什么卵用
0 赞 2015-11-09 21:35

要回复文章请先登录注册