Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
313fc101
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
313fc101
编写于
1月 10, 2023
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改Want匹配规则章节的目录结构
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
887b6d9e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
40 deletion
+43
-40
zh-cn/application-dev/application-models/explicit-implicit-want-mappings.md
...dev/application-models/explicit-implicit-want-mappings.md
+43
-40
未找到文件。
zh-cn/application-dev/application-models/explicit-implicit-want-mappings.md
浏览文件 @
313fc101
# 显式Want与隐式Want匹配规则
# 显式Want与隐式Want匹配规则
在启动目标Ability时,会通过显式Want或者隐式Want进行目标Ability的匹配,这里说的匹配规则就是调用方Want中设置的参数如何与目标Ability声明的配置文件进行匹配。
在启动目标Ability时,会通过显式Want和隐式Want进行目标Ability的匹配,这里说的匹配规则就是调用方Want中设置的参数如何与目标Ability声明的配置文件进行匹配。
## 显式Want匹配原理
-
**显式Want匹配原理**
| 名称 | 类型 | 匹配项 | 必选 | 规则 |
显式Want匹配原理如下表所示。
| -------- | -------- | -------- | -------- | -------- |
| deviceId | string | 是 | 否 | 留空将仅匹配本设备内Ability。 |
| 名称 | 类型 | 匹配项 | 必选 | 规则 |
| bundleName | string | 是 | 是 | 如果指定abilityName,而不指定bundleName,则匹配失败。 |
| -------- | -------- | -------- | -------- | -------- |
| moduleName | string | 是 | 否 | 留空时当同一个应用内存在多个模块且模块间存在重名Ability,将默认匹配第一个。 |
| deviceId | string | 是 | 否 | 留空将仅匹配本设备内Ability。 |
| abilityName | string | 是 | 是 | 该字段必须设置表示显式匹配。 |
| bundleName | string | 是 | 是 | 如果指定abilityName,而不指定bundleName,则匹配失败。 |
| uri | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| moduleName | string | 是 | 否 | 留空时当同一个应用内存在多个模块且模块间存在重名Ability,将默认匹配第一个。 |
| type | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| abilityName | string | 是 | 是 | 该字段必须设置表示显式匹配。 |
| action | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| uri | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| entities | Array
<
string
>
| 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| type | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| flags | number | 否 | 否 | 不参与匹配,直接传递给系统处理,一般用来设置运行态信息,例如URI数据授权等。 |
| action | string | 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| parameters | {[key:
string]:
any} | 否 | 否 | 不参与匹配,应用自定义数据将直接传递给目标Ability。 |
| entities | Array
<
string
>
| 否 | 否 | 系统匹配时将忽略该参数,但仍可作为参数传递给目标Ability。 |
| flags | number | 否 | 否 | 不参与匹配,直接传递给系统处理,一般用来设置运行态信息,例如URI数据授权等。 |
-
**隐式Want匹配原理**
| parameters | {[key:
string]:
any} | 否 | 否 | 不参与匹配,应用自定义数据将直接传递给目标Ability。 |
| 名称 | 类型 | 匹配项 | 必选 | 规则 |
| -------- | -------- | -------- | -------- | -------- |
## 隐式Want匹配原理
| deviceId | string | 是 | 否 | 跨设备目前不支持隐式调用。 |
| abilityName | string | 否 | 否 | 该字段必须留空表示隐式匹配。 |
隐式Want匹配原理如下表所示。
| bundleName | string | 是 | 否 | -
声明bundleName时,隐式搜索将仅限于对应应用包内。
<br/>
-
声明bundleName与moduleName时,隐式搜索将仅限于对应应用的对应Module内。
<br/>
-
单独声明moduleName时,该字段无效。
<br/>
-
同时声明bundleName与moduleName时,隐式搜索将仅限于对应应用包内的对应模块内。
<br/>
这些字段将用来隐式匹配,具体规则可参考
[
隐式Want匹配原理详解
](
#隐式want匹配原理详解
)
。 |
| moduleName | string | 是 | 否 |
| 名称 | 类型 | 匹配项 | 必选 | 规则 |
| uri | string | 是 | 否 |
| ----------- | ------------------------------ | ------ | ---- | ------------------------------------------------------------ |
| type | string | 是 | 否 |
| deviceId | string | 是 | 否 | 跨设备目前不支持隐式调用。 |
| action | string | 是 | 否 |
| abilityName | string | 否 | 否 | 该字段必须留空表示隐式匹配。 |
| entities | Array
<
string
>
| 是 | 否 |
| bundleName | string | 是 | 否 | -
声明bundleName时,隐式搜索将仅限于对应应用包内。
<br/>
-
声明bundleName与moduleName时,隐式搜索将仅限于对应应用的对应Module内。
<br/>
-
单独声明moduleName时,该字段无效。
<br/>
-
同时声明bundleName与moduleName时,隐式搜索将仅限于对应应用包内的对应模块内。
<br/>
这些字段将用来隐式匹配,具体规则可参考
[
隐式Want匹配原理详解
](
#隐式want匹配原理详解
)
。 |
| flags | number | 否 | 否 | 不参与匹配,直接传递给系统处理,一般用来设置运行态信息,例如URI数据授权等。 |
| moduleName | string | 是 | 否 | |
| parameters | {[key:
string]:
any} | 否 | 否 | 不参与匹配,应用自定义数据将直接传递给目标Ability。 |
| uri | string | 是 | 否 | |
| type | string | 是 | 否 | |
# 隐式Want匹配原理详解
| action | string | 是 | 否 | |
| entities | Array
<
string
>
| 是 | 否 | |
| flags | number | 否 | 否 | 不参与匹配,直接传递给系统处理,一般用来设置运行态信息,例如URI数据授权等。 |
| parameters | {[key:
string]:
any} | 否 | 否 | 不参与匹配,应用自定义数据将直接传递给目标Ability。 |
从隐式Want的定义,可得知:
从隐式Want的定义,可得知:
...
@@ -46,7 +48,7 @@
...
@@ -46,7 +48,7 @@
系统将调用方传入的want参数(包含action、entities、uri和type属性)与已安装待匹配的应用Ability的skills配置(包含actions、entities、uris和type属性)依次进行匹配。当四个属性匹配均通过,则此应用才会被应用选择器展示给用户进行选择。
系统将调用方传入的want参数(包含action、entities、uri和type属性)与已安装待匹配的应用Ability的skills配置(包含actions、entities、uris和type属性)依次进行匹配。当四个属性匹配均通过,则此应用才会被应用选择器展示给用户进行选择。
## want参数的action匹配规则
##
#
want参数的action匹配规则
将调用方传入的want参数的
[
action
](
../reference/apis/js-apis-ability-wantConstant.md#wantconstantaction
)
与待匹配Ability的skills配置中的actions进行匹配。
将调用方传入的want参数的
[
action
](
../reference/apis/js-apis-ability-wantConstant.md#wantconstantaction
)
与待匹配Ability的skills配置中的actions进行匹配。
...
@@ -58,10 +60,11 @@
...
@@ -58,10 +60,11 @@
-
调用方传入的want参数的action不为空,待匹配Ability的skills配置中的actions不为空且不包含调用方传入的want参数的action,则action匹配失败。
-
调用方传入的want参数的action不为空,待匹配Ability的skills配置中的actions不为空且不包含调用方传入的want参数的action,则action匹配失败。
**图1**
want参数的action匹配规则
<img
src=
"figures/want-action.png"
alt=
"want-action"
style=
"zoom:80%;"
/>
**图1**
want参数的action匹配规则
<img
src=
"figures/want-action.png"
alt=
"want-action"
style=
"zoom:80%;"
/>
## want参数的entities匹配规则
##
#
want参数的entities匹配规则
将调用方传入的want参数的
[
entities
](
../reference/apis/js-apis-ability-wantConstant.md#wantconstantentity
)
与待匹配Ability的skills配置中的entities进行匹配。
将调用方传入的want参数的
[
entities
](
../reference/apis/js-apis-ability-wantConstant.md#wantconstantentity
)
与待匹配Ability的skills配置中的entities进行匹配。
...
@@ -79,7 +82,7 @@
...
@@ -79,7 +82,7 @@
<img
src=
"figures/want-entities.png"
alt=
"want-entities"
style=
"zoom:80%;"
/>
<img
src=
"figures/want-entities.png"
alt=
"want-entities"
style=
"zoom:80%;"
/>
## want参数的uri和type匹配规则
##
#
want参数的uri和type匹配规则
调用方传入的want参数中设置uri和type参数发起组件启动请求,系统会遍历当前系统已安装的组件列表,并逐个匹配待匹配Ability的skills配置中的uris数组,如果待匹配Ability的skills配置中的uris数组中只要有一个可以匹配调用方传入的want参数中设置的uri和type即为匹配成功。
调用方传入的want参数中设置uri和type参数发起组件启动请求,系统会遍历当前系统已安装的组件列表,并逐个匹配待匹配Ability的skills配置中的uris数组,如果待匹配Ability的skills配置中的uris数组中只要有一个可以匹配调用方传入的want参数中设置的uri和type即为匹配成功。
...
@@ -113,7 +116,7 @@
...
@@ -113,7 +116,7 @@
<img
src=
"figures/want-uri-type2.png"
alt=
"want-uri-type2"
style=
"zoom:80%;"
/>
<img
src=
"figures/want-uri-type2.png"
alt=
"want-uri-type2"
style=
"zoom:80%;"
/>
## uri匹配规则
##
#
uri匹配规则
这里为了简化描述,称want中传入的uri为w_uri,待匹配Ability的skills配置中uri为s_uri,具体的匹配规则如下:
这里为了简化描述,称want中传入的uri为w_uri,待匹配Ability的skills配置中uri为s_uri,具体的匹配规则如下:
...
@@ -139,7 +142,7 @@
...
@@ -139,7 +142,7 @@
> - **正则表达式**:`scheme://host:port/pathRegex`
> - **正则表达式**:`scheme://host:port/pathRegex`
## type匹配规则
##
#
type匹配规则
> **说明:**
> **说明:**
> 此小节所述的type匹配规则的适用性需建立在want参数内type不为空的基础上。当want参数内type为空时请参见[want参数的uri和type匹配规则](#want参数的uri和type匹配规则)。
> 此小节所述的type匹配规则的适用性需建立在want参数内type不为空的基础上。当want参数内type为空时请参见[want参数的uri和type匹配规则](#want参数的uri和type匹配规则)。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录