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

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

一、安卓平台设置

1、设置UrlSchemes

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

(1)5+App项目:在manifest.json文件的"plus"->"distribute"->"google"下添加schemes节点数据如下:

复制代码
"plus": {
 "distribute": {  
    "google": {  
        "schemes": [  
            "test"  
        ],  
        //...  
    },  
    //...  
},  
复制代码

(2)uni-app项目:把上面的schemes节点数据放到manifest.json的"app-plus"->"distribute"->"android"节点下

(3)值域说明:

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

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

2、浏览器中通过href启动应用

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

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

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

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

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

4、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);
复制代码

二、iOS平台设置

1、设置UrlSchemes

(1)可视化界面配置:打开项目的manifest.json文件,在“App常用其它设置”页面“iOS设置”下的UrlSchemes中配置scheme字段:

  注意:多个scheme使用','分割

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

(1)5+App项目:在manifest.json文件的"plus"->"distribute"->"apple"节点下添加urltypes数据

(2)uni-app项目:在manifest.json的"app-plus"->"distribute"->"ios"节点下添加urltypes数据

  urltypes节点数据如下:

复制代码
"plus": {  
    "distribute": {  
        "apple": {  
            "urltypes": [  
                    {  
                        "urlidentifier":"com.xxx.test",  
                        "urlschemes": [  
                            "test"  
                        ]  
                    }  
            ],  
            //...  
        },  
        //...  
    },  
    //...  
},  
//...
复制代码

  值域说明:urlidentifier为标识,可自定义,格式为反向域名格式;

  urlschemes为要指定的scheme值,字符串数组,使用小写字母,可设置多个。 比如设置为test,那么其他App呼起你的app的scheme协议就是test://。

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

  在App.vue 中onLaunch 里获取

复制代码
onLaunch: function() {  
      plus.globalEvent.addEventListener('newintent', (e)=>{  
            var args= plus.runtime.arguments;  
        if(args){  
                // 处理args参数,如直达到某新页面等  
        }  
        });  
}   
复制代码

  在App.vue的onShow里获取

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

 

posted @   古兰精  阅读(4755)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-03-16 小知识随手记(七)
2018-03-16 浅析API请求慢如何在前端分析以及前端可能存在的原因
2018-03-16 vue3 vite打包部署后访问报错Expected a JavaScript module script but the server responded with a MIME type of
点击右上角即可分享
微信分享提示