HarmonyOS/OpenHarmony应用开发-信息传递载体Want使用

鸿蒙时代
发布于 2023-2-6 10:26
浏览
0收藏

Want 定义与用途
Want是对象间信息传递的载体,可以用于应用组件间的信息传递。
Want的使用场景之一是作为startAbility的参数,其包含了指定的启动目标,以及启动时需携带的相关数据,如bundleName和abilityName字段分别指明目标Ability所在应用的包名以及对应包内的Ability名称。当AbilityA启动AbilityB并需要传入一些数据给AbilityB时,Want可以作为一个数据载体将数据传给AbilityB。

Want用法如下图:

Want 类型
显式Want: 在启动Ability时指定了abilityName和bundleName的Want称为显式Want。

当有明确处理请求的对象时,通过提供目标Ability所在应用的包名信息(bundleName),并在Want内指定abilityName便可启动目标Ability。显式Want通常在启动当前应用开发中某个已知Ability时被用到。

let want = {
    deviceId: '',
    bundleName: 'com.example.myapplication',
    abilityName: 'calleeAbility',
};

隐式Want:在启动Ability时未指定abilityName的Want称为隐式Want。

当请求处理的对象不明确时,如开发者希望在当前应用中使用其他应用提供的某个能力(通过skills定义),而不关心提供该能力的具体应用,可以使用隐式Want。

let want = {
    // bundleName: 'com.example.myapplication',
    entities: [ 'entity.system.browsable' ],
    uri: '',
    type: 'text/plain',
};

调用方传入的want参数中不带有abilityName和bundleName,则不允许通过隐式Want启动所有应用的ServiceExtensionAbility。
调用方传入的want参数中带有bundleName,则允许使用startServiceExtensionAbility()方法隐式Want启动ServiceExtensionAbility。

Want参数属性说明:
HarmonyOS/OpenHarmony应用开发-信息传递载体Want使用-鸿蒙开发者社区
HarmonyOS/OpenHarmony应用开发-信息传递载体Want使用-鸿蒙开发者社区
HarmonyOS/OpenHarmony应用开发-信息传递载体Want使用-鸿蒙开发者社区
文档地址:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/want-overview-0000001385696462-V3?catalogVersion=V3

标签
HarmonyOSOpenHarmony应用开发-信息传递载.docx 45.9K 15次下载
收藏
回复
举报
回复
    相关推荐