Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
f94a93c4
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看板
未验证
提交
f94a93c4
编写于
2月 20, 2023
作者:
zyjhandsome
提交者:
Gitee
2月 20, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/application-models/want-overview.md.
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
0dbae328
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
23 deletion
+9
-23
zh-cn/application-dev/application-models/want-overview.md
zh-cn/application-dev/application-models/want-overview.md
+9
-23
未找到文件。
zh-cn/application-dev/application-models/want-overview.md
浏览文件 @
f94a93c4
...
@@ -3,17 +3,18 @@
...
@@ -3,17 +3,18 @@
## Want的定义与用途
## Want的定义与用途
[
Want
](
../reference/apis/js-apis-app-ability-want.md
)
是
对象间信息传递的载体,可以用于应用组件间的信息传递。其使用场景之一是作为startAbility()的参数,包含了指定的启动目标以及启动时需携带的相关数据,如bundleName和abilityName字段分别指明目标Ability所在应用的包名以及对应包内的Ability名称。当UIAbilityA启动UIAbilityB并需要传入一些数据给UIAbilityB时,Want可以作为一个载体将数据传给UIAbilityB
。
[
Want
](
../reference/apis/js-apis-app-ability-want.md
)
是
一种对象,用于在应用组件之间传递信息
。
**图1**
Want用法示意
其中,一种常见的使用场景是作为
[
startAbility()
](
../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability
)
方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向UIAbilityB传递一些数据时,可以使用Want作为一个载体,将数据传递给UIAbilityB。
!
[
usage-of-want
](
figures/usage-of-want.png
)
**图1**
Want用法示意

## Want的类型
## Want的类型
-
**显式Want**
:在启动Ability时
指定了abilityName和bundleName的Want
称为显式Want。
-
**显式Want**
:在启动Ability时
,如果指定了abilityName和bundleName,则
称为显式Want。
当有明确处理请求的对象时,通过提供目标Ability所在应用的包名信息(bundleName),并在Want内指定abilityName便可启动目标Ability。显式Want通常用于在当前应用开发中启动某个已知的Ability。参数说明参见
[
Want参数说明
](
want-overview.md#Want参数说明
)
。
显式Want通常用于在当前应用中启动已知的目标Ability,通过提供目标Ability所在应用的Bundle名称信息(bundleName)并在Want对象内指定abilityName来启动目标Ability。当有明确处理请求的对象时,显式Want是一种简单有效的启动目标Ability的方式
。
```
ts
```
ts
let
wantInfo
=
{
let
wantInfo
=
{
...
@@ -23,8 +24,8 @@
...
@@ -23,8 +24,8 @@
}
}
```
```
-
**隐式Want**
:在启动
UIAbility时未指定abilityName的Want
称为隐式Want。
-
**隐式Want**
:在启动
Ability时,如果未指定abilityName,则
称为隐式Want。
当
请求处理的对象不明确时,希望在当前应用中使用其他应用提供的某个能力(通过
[
skills标签
](
../quick-start/module-configuration-file.md#skills标签
)
定义),而不关心提供该能力的具体应用,可以使用隐式Want。例如使用隐式Want描述需要打开一个链接的请求,而不关心通过具体哪个应用打开,系统将匹配声明支持该请求的所有应用
。
当
需要处理的对象不明确时,可以使用隐式Want,在当前应用中使用其他应用提供的某个能力,而不关心提供该能力的具体应用。隐式Want使用
[
skills标签
](
../quick-start/module-configuration-file.md#skills标签
)
来定义需要使用的能力,并由系统匹配声明支持该请求的所有应用来处理请求。例如,需要打开一个链接的请求,系统将匹配所有声明支持该请求的应用,然后让用户选择使用哪个应用打开链接
。
```
ts
```
ts
...
@@ -39,7 +40,7 @@
...
@@ -39,7 +40,7 @@
};
};
```
```
>

**说明:**
> **说明:**
> - 根据系统中待匹配Ability的匹配情况不同,使用隐式Want启动Ability时会出现以下三种情况。
> - 根据系统中待匹配Ability的匹配情况不同,使用隐式Want启动Ability时会出现以下三种情况。
> - 未匹配到满足条件的Ability:启动失败。
> - 未匹配到满足条件的Ability:启动失败。
> - 匹配到一个满足条件的Ability:直接启动该Ability。
> - 匹配到一个满足条件的Ability:直接启动该Ability。
...
@@ -48,18 +49,3 @@
...
@@ -48,18 +49,3 @@
> - 调用方传入的want参数中不带有abilityName和bundleName,则不允许通过隐式Want启动所有应用的ServiceExtensionAbility。
> - 调用方传入的want参数中不带有abilityName和bundleName,则不允许通过隐式Want启动所有应用的ServiceExtensionAbility。
>
>
> - 调用方传入的want参数中带有bundleName,则允许使用startServiceExtensionAbility()方法隐式Want启动ServiceExtensionAbility,默认返回优先级最高的ServiceExtensionAbility,如果优先级相同,返回第一个。
> - 调用方传入的want参数中带有bundleName,则允许使用startServiceExtensionAbility()方法隐式Want启动ServiceExtensionAbility,默认返回优先级最高的ServiceExtensionAbility,如果优先级相同,返回第一个。
## Want参数说明
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | -------- | -------- | -------- |
| deviceId | 只读 | string | 否 | 表示目标Ability所在设备ID。如果未设置该字段,则表明本设备。 |
| bundleName | 只读 | string | 否 | 表示目标Ability所在应用名称。 |
| moduleName | 只读 | string | 否 | 表示目标Ability所属的模块名称。 |
| abilityName | 只读 | string | 否 | 表示目标Ability名称。如果未设置该字段,则该Want为隐式。如果在Want中同时指定了bundleName,moduleName和abilityName,则Want可以直接匹配到指定的Ability。 |
| uri | 只读 | string | 否 | 表示携带的数据,一般配合type使用,指明待处理的数据类型。如果在Want中指定了uri,则Want将匹配指定的Uri信息,包括scheme,
schemeSpecificPart,
authority和path信息。 |
| type | 只读 | string | 否 | 表示携带数据类型,使用
[
MIME类型
](
https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com%E3%80%82
)
规范。例如:"text/plain"、"image/
\*
"等。 |
|
[
action
](
../reference/apis/js-apis-ability-wantConstant.md
)
| 只读 | string | 否 | 表示要执行的通用操作(如:查看、分享、应用详情)。在隐式Want中,您可定义该字段,配合uri或parameters来表示对数据要执行的操作。如打开,查看该uri数据。例如,当uri为一段网址,action为ohos.want.action.viewData则表示匹配可查看该网址的Ability。 |
|
[
entities
](
../reference/apis/js-apis-ability-wantConstant.md
)
| 只读 | Array
<
string
>
| 否 | 表示目标Ability额外的类别信息(如:浏览器,视频播放器),在隐式Want中是对action的补充。在隐式Want中,您可定义该字段,来过滤匹配UIAbility类别,如必须是浏览器。例如,在action字段的举例中,可存在多个应用声明了支持查看网址的操作,其中有应用为普通社交应用,有的为浏览器应用,您可通过entity.system.browsable过滤掉非浏览器的其他应用。 |
|
[
flags
](
../reference/apis/js-apis-ability-wantConstant.md#wantconstantflags
)
| 只读 | number | 否 | 表示处理Want的方式。例如通过wantConstant.Flags.FLAG_ABILITY_CONTINUATION表示是否以设备间迁移方式启动Ability。 |
| parameters | 只读 | {
[
key: string]: any} | 否 | 此参数用于传递自定义数据,通过用户自定义的键值对进行数据填充,具体支持的数据类型如[Want API
](
../reference/apis/js-apis-app-ability-want.md
)
所示。 |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录