DCloud_App_Array
DCloud_App_Array
  • 发布:2015-10-19 17:21
  • 更新:2 天前
  • 阅读:79706

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

26 关注 分享
五块钱的果汁 TommyJin dreamit1986 Trust 雪之梦技术驿站 火岚 891024617@qq.com 小明子 mingtianfu 漠 dipper echoer 笑着接受一切 hylong 小诺小言 乐子西 306816224@qq.com MedusaSTears@qq.com 野蛮的橘子 1033100683@qq.com aliang888 445503375@qq.com choin 诸葛逍遥 中项网前端 516734115@qq.com

要回复文章请先登录注册

凌风浮云S

凌风浮云S

这个abc是包吗
2 天前
123wangyi

123wangyi

配置了urlscheme后为 何还是通过浏览器识别二维码进行唤醒无效
2021-03-26 09:09
lucis

lucis

回复 lucis :
抱歉,记错了,是onLoad
2021-03-22 11:11
lucis

lucis

App.vue里没有onShow这个生命周期吧,应该是在onLaunch生命周期中处理urlscheme启动传递的参数
2021-03-22 11:03
526444323@qq.com

526444323@qq.com

如何做到自动点击该标签 唤起app呢 现在我只能在页面中点击a标签才能唤起
2021-01-20 16:50
CV工程师小刘

CV工程师小刘

<a href="hbuilder://open">打开APP</a> 在QQ浏览器无法执行 在自带的浏览器可以打开 是什么原因呢?
2020-12-14 14:46
skywing2009

skywing2009

回复 狗尾草joss :
请问,你解决了吗?我在浏览器里也唤醒不了
2020-11-19 23:53
skywing2009

skywing2009

回复 skywing2009 :
补充:我用hbuilder基座测试,使用<a href="hbuilder://abc">唤醒APP</a> 能唤醒hbuilderX基座,测试环境没变
2020-11-19 23:39
skywing2009

skywing2009

我在manifest.json里的"app-plus"-->"distribute"-->"android"-->"schemes" : [ "nhtrain" ] 这么配置的,然后在浏览器页面<a href="nhtrain://abc">唤醒APP</a>, 然后APP经过了云打包, 这样还是唤醒不了。。请问我应该怎么做才能唤醒(用的OPPO手机测试,浏览器是自带的和QQ浏览器都测过,没唤醒起来)
2020-11-19 23:36
狗尾草joss

狗尾草joss

回复 782697453@qq.com :
var ifr = document.createElement('iframe');
ifr.src = src;
ifr.style.display = 'none';
document.body.appendChild(ifr);
window.setTimeout(function() {
document.body.removeChild(ifr);
}, 2000);
2020-11-04 09:38