DCloud_App_Array
DCloud_App_Array
  • 发布:2015-10-19 17:21
  • 更新:2019-09-25 15:20
  • 阅读:47074

Android平台设置UrlSchemes,实现被第三方应用调用

分类:HTML5+

如果你的App想要在手机系统中注册一个scheme协议,方便其他App调用你的App,那么可以根据本文设置。

设置UrlSchemes

打开项目的manifest.json文件,切换到“代码视图”

  • 5+App项目
    在manifest.json文件的"plus"->"distribute"->"google"下添加schemes节点数据如下:
    "plus": {  
    "distribute": {  
        "google": {  
            "schemes": [  
                "test"  
            ],  
            //...  
        },  
        //...  
    },  
    //...  
    },  
    //...
  • uni-app项目
    把上面的schemes节点数据放到manifest.json的"app-plus"->"distribute"->"android"节点下

值域说明:为字符串数组,每个字符串为一个urlscheme,使用小写字母(不要使用特殊字符、中文),可设置多个。比如设置为test,那么其他App呼起你的app的scheme协议就是test://。

保存后提交App云端打包生效

浏览器中通过href启动应用

安装应用后,我们可以在html页面中,通过href直接调用应用:

<a href="test://abc">test:<a><br/>

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

在其它应用中通过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);

uni-app中处理urlscheme启动传递的参数

在App.vue的onShow里可以直接获取

onShow: function() {  
    var args= plus.runtime.arguments;  
    if(args){  
        // 处理args参数,如直达到某新页面等  
    }  
}

HBuilder/HBuilderX自带真机运行基座的UrlSchemes为"hbuilder://",方便开发者调测。

如果是本地(离线)打包,请自行在原生工程中配置

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

18 关注 分享
五块钱的果汁 TommyJin dreamit1986 Trust 雪之梦技术驿站 火岚 891024617@qq.com 小明子 mingtianfu 漠 dipper echoer 笑着接受一切 hylong 小诺小言 乐子西 306816224@qq.com MedusaSTears@qq.com

要回复文章请先登录注册

小明子

小明子

从App跳转到系统设置页面,点左上角返回到App,App唤起到前台,请问这个怎么判断是从设置页面返回的??
2019-09-25 15:20
1695408430@qq.com

1695408430@qq.com

回复 2350618674@qq.com:
我估摸着是异步了,参数修改 和 参数获取 同时进行了,做个延时获取试试看
2019-09-16 16:19
673011635@qq.com

673011635@qq.com

离线打包是:
```
<!--通过浏览器Url启动app-->
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data
android:scheme="test"
android:host="abc">
</data>
<!--<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>-->
</intent-filter>
```
2019-09-10 00:09
673011635@qq.com

673011635@qq.com

回复 673011635@qq.com:
亲测,已成功
2019-09-09 23:58
673011635@qq.com

673011635@qq.com

abc是参数设置,重要的是前面的test,要设置成独一无二的属于自己的好识别的
2019-09-09 23:58
天为峰

天为峰

请问,我的5+app应用(Android),想出现在word文件的“其他应用打开”列表中,应该怎么设置这个schemes呢?我试过在plus->distribute->google中设置"schemes" : [ "file", "content" ],,但是一致不生效。我也用了云端打包
2019-08-13 10:41
2350618674@qq.com

2350618674@qq.com

plus.runtime.arguments。能正常唤起,但是获取不到参数。要hide,再打开才会有参数。这是什么原因?
2019-07-24 18:48
290770306@qq.com

290770306@qq.com

回复 1347635797@qq.com:
你设置好了吗 我的H5+APP,设置吊不到应用,求指点
2019-06-18 12:51
290770306@qq.com

290770306@qq.com

设置了还是打不开 什么问题导致的呢
2019-06-18 12:49
1347635797@qq.com

1347635797@qq.com

回复 DCloud_App_Array:
我知道是什么问题了 h5+ 设置 scheme是在plus->distribute->google设置有效,un-app设置scheme在 app-plus->distribute->android 里面有效 ,而文档上只是说吧plus改成app-plus
2019-05-10 13:42