DCloud_App_Array
DCloud_App_Array
  • 发布:2015-10-19 17:21
  • 更新:2024-02-07 15:35
  • 阅读:121580

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

分类:HTML5+

此文档不再维护,请参考新文档地址:https://uniapp.dcloud.io/tutorial/app-android-schemes

如果你的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与第三方应用相互调用

31 关注 分享
BoredApe TommyJin dreamit1986 Trust 雪之梦技术驿站 火岚 8***@qq.com 小明子 mingtianfu 漠 dipper echoer 笑着接受一切 hylong 小诺小言 乐子西 3***@qq.com M***@qq.com 野蛮的橘子 1***@qq.com aliang888 4***@qq.com choin 诸葛逍遥 中项网前端 5***@qq.com 5***@qq.com l***@163.com 1***@qq.com 9***@qq.com fortest

要回复文章请先登录注册

4***@qq.com

4***@qq.com

回复 BoredApe :
好的好的谢了 我到时候艾特你一下
2022-02-10 14:29
BoredApe

BoredApe

回复 4***@qq.com :
同样环境下是否测试过hbuilder:// 能否掉起来?微信和支付宝还有其他大厂的app可能会屏蔽URLScheme跳转,建议你新开一个帖子详细描述问题和提供必要代码截图
2022-02-10 14:28
4***@qq.com

4***@qq.com

回复 BoredApe :
求求你了 大哥 能详细讲一下吗 我给你擦皮鞋 我是直接再源码试图里面添加"schemes" : ["snyycsp"],然后云打包安装到手机上 ,然后我一个html文件里面一个a标签 写的是 <a href="snyycsp://">打开</a> 但是没效果
2022-02-10 14:06
BoredApe

BoredApe

回复 4***@qq.com :
真机调试使用 hbuilder://,打包后可以使用自己的UrlSchemes
2022-02-10 13:31
4***@qq.com

4***@qq.com

你们有人用官网的方法唤醒了么 a标签的那个
2022-02-10 13:28
4***@qq.com

4***@qq.com

回复 7***@qq.com :
你是怎么写的 为什么我按照官网的来 唤醒不起来 我的是h5+app
2022-02-10 12:39
4***@qq.com

4***@qq.com

为什么我a标签无法唤醒呢
2022-02-10 11:58
笑该动人

笑该动人

回复 t***@163.com :
木有
2022-01-22 11:24
2***@qq.com

2***@qq.com

<a href="test://abc">test:<a><br/> a标签写错拉,另外为啥我app在manifest.json中添加后云打包,我用这个app本地启动跳不了
2021-12-09 13:40
DCloud_Android_DQQ

DCloud_Android_DQQ

回复 8***@qq.com :
A 应用唤起打开了 B应用。 这个时候想要返回A应用 只有两个办法: 1 通过物理回退,自然回退到上个应用。 2 B应用采用同样的方法 唤起A应用
2021-11-24 16:07