简体中文
iOS系统中,由于沙盒的限制,导致程序之间相互隔离,需要url scheme协议来实现程序间的通信,通过定义自己的scheme协议,可以非常方便的实现其它三方App调用你的App。
HBuilderX自带标准真机运行基座的UrlSchemes为"hbuilder://",方便开发者调测。
可视化界面配置
打开项目的manifest.json文件,在 “App常用其它设置” -> “iOS设置” -> “UrlSchemes” 项中进行设置:
注意:
字符串建议使用小写字母(不要使用特殊字符、中文等),如设置为"test",那么其他App呼起你的app的scheme协议就是"test://"; 多个scheme使用 "," 分割,每个字符串为一个urltypes;
如果可视化界面无法编辑,请切换到“源码视图”删除urltypes
节点数据重新操作。
源码视图配置
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
"app-plus": {
"distribute": {
"ios": {
"urltypes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
"plus": {
"distribute": {
"apple": {
"urltypes": "hbuilder,myuniapp"
//...
},
//...
},
//...
},
//...
注:为了向下兼容,HBuilderX源码视图配置时
schemes
属性值支持字符串数组,上面示例中的值也可以这么配置["hbuilder","myuniapp"]
保存后提交App云端打包生效
安装应用后,我们可以在H5页面中,通过href直接调用应用:
<a href="test://abc">test:<a><br/>
当其它三方App通过scheme启动App时,可以通过plus.runtime.arguments获取完整的urlscheme字符串。
onshow
事件中获取,示例代码如下:onShow: function() {
var args= plus.runtime.arguments;
if(args){
// 处理args参数,如直达到某新页面等
}
}
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);