华为鸿蒙 Want:应用组件之间信息传递的桥梁

华为鸿蒙 Want:应用组件之间信息传递的桥梁

IT资讯 2025-08-04 18:12:11 3小时前

踏入鸿蒙世界的敲门砖,标志着您在技术征途上的全新起点,提升就业竞争力,获得行业认可,点亮职业成长先机,快人一步抢占未来应用开发赛道!https://developer.huawei.com/consumer/cn/training/dev-cert-detail/101666948302721398?ha_source=hmosclass-itzhijia&ha_sourceId=89000249

本文旨在深入探讨华为鸿蒙 HarmonyOS NEXT 系统(截至目前 API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。

在华为鸿蒙系统中,应用组件之间的信息传递是通过 Want 对象实现的。Want 对象可以携带各种信息,例如目标组件的名称、参数、数据等,从而实现应用组件之间的通信和协作。

一、Want 的定义和作用

Want 是一个对象,用于在应用组件之间传递信息。它可以携带各种信息,例如目标组件的名称、参数、数据等,从而实现应用组件之间的通信和协作。

‎以下是一个 Want 对象的示例:

开发者可以根据应用需求使用不同的 Want 参数属性,实现应用组件之间的信息传递和通信。

二、显式 Want 与隐式 Want 的区别

显式 Want 和隐式 Want 是两种不同的 Want 对象,它们的主要区别在于目标组件的指定方式。

显式 Want:在启动组件时,显式 Want 对象会指定目标组件的名称和包名,例如 wantInfo = {deviceId: '', bundleName: 'com.example.myapplication', abilityName: 'FuncAbility'}。

隐式 Want:在启动组件时,隐式 Want 对象不会指定目标组件的名称,而是通过 action、entities、uri、type 等信息进行匹配,例如 wantInfo = {action: 'ohos.want.action.search', entities: ['entity.system.browsable'], uri: 'https://www.test.com:8080 / query / student', type: 'text / plain' }。

‎显式 Want 和隐式 Want 的选择取决于应用的需求。如果知道目标组件的名称和包名,则使用显式 Want;如果目标组件不明确,则需要使用隐式 Want。

三、显式 Want 的匹配规则

显式 Want 的匹配规则是根据 Want 对象中的信息与目标组件的配置进行匹配,只有匹配成功的组件才会被启动。

‎以下是一个显式 Want 匹配的示例:

显式 Want 的匹配规则:

1.bundleName 匹配:首先匹配 Want 对象中的 bundleName 与目标组件配置中的 bundleName 是否一致。

2.abilityName 匹配:如果 bundleName 匹配成功,则匹配 Want 对象中的 abilityName 与目标组件配置中的 abilityName 是否一致。

3.parameters 匹配:如果 abilityName 匹配成功,则匹配 Want 对象中的 parameters 与目标组件配置中的 parameters 是否一致。‎只有当所有匹配规则都满足时,显式 Want 才会匹配成功,并启动目标组件。

四、隐式 Want 的匹配规则

隐式 Want 的匹配规则是通过 action、entities、uri、type 等信息进行匹配,匹配成功的组件数量决定了隐式 Want 的处理方式。

‎以下是一个隐式 Want 匹配的示例:

隐式 Want 的匹配规则:

1.linkFeature 匹配:首先匹配 Want 对象中的 linkFeature 与目标组件配置中的 linkFeature 是否一致。

2.uri 和 type 匹配:如果 linkFeature 匹配成功,则匹配 Want 对象中的 uri 和 type 与目标组件配置中的 uris 数组中的 uri 和 type 是否一致。

3.action 和 entities 匹配:如果 uri 和 type 匹配成功,则匹配 Want 对象中的 action 和 entities 与目标组件配置中的 actions 和 entities 是否一致。‎隐式 Want 的匹配结果有以下几种情况:

匹配失败:如果所有匹配规则都失败,则隐式 Want 匹配失败,无法启动目标组件。

匹配成功,单个组件:如果匹配成功,并且只有一个目标组件满足条件,则直接启动该目标组件。

匹配成功,多个组件:如果匹配成功,并且有多个目标组件满足条件,则弹出选择框让用户选择要启动的组件。

‎隐式 Want 的匹配规则相对复杂,开发者需要根据应用的需求选择合适的匹配规则,并确保配置文件中的信息准确无误。

五、Want 参数的属性说明

Want 对象包含多个属性,每个属性都用于传递不同的信息。以下是一些常用的 Want 参数属性:

deviceId:目标设备的 ID,如果为空,则表示本设备。

bundleName:目标组件的包名。

moduleName:目标组件所在的模块名,如果为空,则表示默认模块。

abilityName:目标组件的名称。

uri:目标组件的 URI,用于匹配具有特定 URI 的组件。

type:目标组件的 MIME 类型,用于匹配具有特定 MIME 类型的组件。

action:目标组件的动作,用于匹配具有特定动作的组件。

entities:目标组件的实体,用于匹配具有特定实体的组件。

parameters:目标组件的参数,用于传递自定义信息。

咱们可以根据应用需求使用不同的 Want 参数属性,实现应用组件之间的信息传递和通信。

‎本篇博客介绍了华为鸿蒙 Want 的定义、作用、显式 Want 和隐式 Want 的区别、匹配规则以及 Want 参数的属性说明。后续文章将深入讲解 Want 对象的具体使用方法和开发技巧。

‎请注意,由于鸿蒙系统版本更新较快,部分功能可能存在变动,请以最新版本官方文档为准。(文章转载自 51CTO,作者 SameX)

文章版权声明:除非注明,否则均为网络转载文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 巴西央行拟于 2024 年底前推出数字货币
  • 受恶意程序影响,Python 第三方套件存储库 PyPI 将强制用户使用 2FA 登录验证
  • 为瑞幸独家定制五周年笔记本电脑 联想昭阳焕新走向“年轻化”
  • 备战 618!ROG 魔霸 7 Plus 电竞本开门红超值优惠!RTX4060 配置仅售 9499 元
  • 洞察 Z 世代生活,小熊电器产品迭代交出高分答卷
  • 共襄盛会!2023 江西省车联网安全大会圆满召开
  • 发布“石头家居清洁中心” 开启家居健康新时代
  • 可城市可越野!仰望 U8 以云辇-P 拓展体验边界
  • 售价 3499 美元的苹果 Vision Pro 头显 BOM 清单曝光,物料成本达 1509 美元
  • 美好的“鹏友时光” 酷狗蝰蛇音效带来车内沉浸听歌体验
  • 因旗下车辆太过于容易被盗,纽约市起诉起亚和现代
  • 国产动画《雄狮少年 2》片花曝光,2024 年上映
  • 小红书称将严厉打击通过不当投诉牟利的行为
  • 消息称 Netflix 今秋进军体育赛事直播,CEO 去年曾称没看到盈利模式
  • 速度!华为开发者大会 HDC.Together 早鸟票开抢,8 月 4 日开幕
  • 讯飞星火认知大模型强悍升级,星火 APP 同步发布
  • 去浦西还是去康城?消息称 OPPO 回流哲库芯片前员工
  • 最强 AI 监管来了:欧盟通过《AI 法案》草案,最高罚款全球营收 6%
  • 股价累计上涨 73% ,“尴尬”的甲骨文终于迎来了“高光时刻”
  • 淘宝左撇子会场两天涌入 8 万人 许多父母收到人生第一件左手用品
  • 最新资讯

    热门资讯