Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
74b3da39
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
74b3da39
编写于
3月 14, 2022
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add app-ios-schemes.md
上级
bd6ce11b
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
96 addition
and
0 deletion
+96
-0
docs/app-ios-schemes.md
docs/app-ios-schemes.md
+96
-0
未找到文件。
docs/app-ios-schemes.md
0 → 100644
浏览文件 @
74b3da39
iOS系统中,由于沙盒的限制,导致程序之间相互隔离,需要url scheme协议来实现程序间的通信,通过定义自己的scheme协议,可以非常方便的实现其它三方App调用你的App。
**HBuilderX自带标准真机运行基座的UrlSchemes为"hbuilder://"**
,方便开发者调测。
### 设置UrlSchemes
**可视化界面配置**
打开项目的manifest.json文件,在 “App常用其它设置” -> “iOS设置” -> “UrlSchemes” 项中进行设置:
![](
https://native-res.dcloud.net.cn/images/uniapp/others/urlschemes-ios.png
)
>注意:
>字符串建议使用小写字母(不要使用特殊字符、中文等),如设置为"test",那么其他App呼起你的app的scheme协议就是"test://";
>多个scheme使用 "," 分割,每个字符串为一个scheme;
>如果可视化界面无法编辑,请切换到“源码视图”删除`schemes`节点数据重新操作。
**源码视图配置**
打开项目的manifest.json文件,切换到“源码视图”,根据项目类型进行配置
-
uni-app项目
在 "app-plus"->"distribute"->"ios" 节点的 schemes 属性配置UrlSchemes,示例如下:
```
js
"
app-plus
"
:
{
"
distribute
"
:
{
"
ios
"
:
{
"
schemes
"
:
"
hbuilder,myuniapp
"
//...
},
//...
},
//...
},
//...
```
-
5+App/Wap2App项目
在 "plus"->"distribute"->"apple" 节点的 schemes 属性配置UrlSchemes,示例如下:
```
js
"
plus
"
:
{
"
distribute
"
:
{
"
apple
"
:
{
"
schemes
"
:
"
hbuilder,myuniapp
"
//...
},
//...
},
//...
},
//...
```
> 注:为了向下兼容,HBuilder源码视图配置时`schemes`属性值支持字符串数组,上面示例中的值也可以这么配置["hbuilder",""myuniapp"]
**保存后提交App云端打包生效**
### 浏览器中通过href启动应用
安装应用后,我们可以在H5页面中,通过href直接调用应用:
```
html
<a
href=
"test://abc"
>
test:
<a><br/>
```
### App中处理scheme启动传递的参数
当其它三方App通过scheme启动App时,可以通过plus.runtime.arguments获取完整的urlscheme字符串。
-
uni-app项目
建议在应用生命周期app.vue的
`onshow`
事件中获取,示例代码如下:
```
js
onShow
:
function
()
{
var
args
=
plus
.
runtime
.
arguments
;
if
(
args
){
// 处理args参数,如直达到某新页面等
}
}
```
-
5+App/Wap2App项目
在HTML页面的js中监听'plusready'和'newintent'事件回调中获取,示例代码如下:
```
js
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
);
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录