0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙Ability Kit(程序框架服务)【Want概述】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-06 09:16 次阅读

Want概述

Want的定义与用途

[Want]是一种对象,用于在应用组件之间传递信息

其中,一种常见的使用场景是作为[startAbility()]方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向UIAbilityB传递一些数据时,可以使用Want作为一个载体,将数据传递给UIAbilityB。

图1 Want用法示意
usage-of-want

Want的类型

  • 显式Want :在启动目标应用组件时,调用方传入的want参数中指定了abilityName和bundleName,称为显式Want。
    显式Want通常用于在当前应用中启动已知的目标应用组件,通过提供目标应用组件所在应用的Bundle名称信息(bundleName)并在Want对象内指定abilityName来启动目标应用组件。当有明确处理请求的对象时,显式Want是一种简单有效的启动目标应用组件的方式。
import Want from '@ohos.app.ability.Want';

let wantInfo: Want = {
  deviceId: '', // deviceId为空表示本设备
  bundleName: 'com.example.myapplication',
  abilityName: 'FuncAbility',
}
  • 隐式Want :在启动目标应用组件时,调用方传入的want参数中未指定abilityName,称为隐式Want。
    当需要处理的对象不明确时,可以使用隐式Want,在当前应用中使用其他应用提供的某个能力,而不关心提供该能力的具体应用。隐式Want使用[skills标签]来定义需要使用的能力,并由系统匹配声明支持该请求的所有应用来处理请求。例如,需要打开一个链接的请求,系统将匹配所有声明支持该请求的应用,然后让用户选择使用哪个应用打开链接。

    import Want from '@ohos.app.ability.Want';
    
    let wantInfo: Want = {
      // uncomment line below if wish to implicitly query only in the specific bundle.
      // bundleName: 'com.example.myapplication',
      action: 'ohos.want.action.search',
      // entities can be omitted
      entities: [ 'entity.system.browsable' ],
      uri: 'https://www.test.com:8080/query/student',
      type: 'text/plain',
    };
    

    新文档.png

    说明:
    开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

    • 根据系统中待匹配应用组件的匹配情况不同,使用隐式Want启动应用组件时会出现以下三种情况。
      • 未匹配到满足条件的应用组件:启动失败。
      • 匹配到一个满足条件的应用组件:直接启动该应用组件。
      • 匹配到多个满足条件的应用组件(UIAbility):弹出选择框让用户选择。
    • 对于启动ServiceExtensionAbility的场景:
      • 调用方传入的want参数中带有abilityName,则不允许通过隐式Want启动ServiceExtensionAbility。
      • 调用方传入的want参数中带有bundleName,则允许使用startServiceExtensionAbility()方法隐式Want启动ServiceExtensionAbility,默认返回优先级最高的ServiceExtensionAbility,如果优先级相同,返回第一个。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 框架
    +关注

    关注

    0

    文章

    378

    浏览量

    17150
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42261
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发接口Ability框架:【@ohos.application.Ability (Ability)】

    Ability模块提供对Ability生命周期、上下文环境等调用管理的能力,包括Ability创建、销毁、转储客户端信息等。
    的头像 发表于 04-30 17:42 1978次阅读
    <b class='flag-5'>鸿蒙</b>开发接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.<b class='flag-5'>Ability</b> (<b class='flag-5'>Ability</b>)】

    鸿蒙Ability Kit程序框架服务)【UIExtensionAbility】

    [UIExtensionAbility]是UI类型的ExtensionAbility组件,需要与[UIExtensionComponent]一起配合使用,开发者可以在UIAbility的页面中通过UIExtensionComponent嵌入提供方应用的UIExtensionAbility提供的UI。UIExtensionAbility会在独立于UIAbility的进程中运行,完成其页面的布局和渲染。常用于有进程隔离诉求的系统弹窗、状态栏、胶囊等模块化开发的场景。
    的头像 发表于 06-05 09:19 734次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【UIExtensionAbility】

    鸿蒙Ability开发-Stage模型下Ability的创建和使用

    函数 HiLog日志系统可以让应用按照指定类型、指定级别、指定格式字符串打印日志内容,帮助开发者了解应用/服务的运行状态,更好地调试程序。 HiLog提供了debug、info、warn、error以及fatal
    发表于 01-08 15:34

    HarmonyOS NEXT Developer Beta1中的Kit

    、AI六大领域,例如: 应用框架相关Kit开放能力:Ability Kit程序框架
    发表于 06-26 10:47

    跟阿斌一起学鸿蒙(2): Ability vs App?

    的方式来实现这些功能,避免过早的头秃。# 2. AbilityAbility,就是鸿蒙OS为程序员们提供的基础设施之一。## Ability
    发表于 11-30 20:56

    【HarmonyOS IPC 试用连载 】鸿蒙系统初步了解

    框架层提供了HarmonyOS应用开发提供了Java/C/C++/JS等多语言的用户程序框架Ability框架,以及各种软硬件
    发表于 01-04 17:25

    HarmonyOS/OpenHarmony应用开发-stage使用显示Want启动Ability

    (this) as context.AbilityContext;await context.startAbility(want);console.info(`explicit start ability succeed&
    发表于 02-07 10:22

    鸿蒙开发接口Ability框架:【@ohos.application.Want (Want)】

    Want模块提供系统的基本通信组件的能力。
    的头像 发表于 05-11 09:39 194次阅读
    <b class='flag-5'>鸿蒙</b>开发接口<b class='flag-5'>Ability</b><b class='flag-5'>框架</b>:【@ohos.application.<b class='flag-5'>Want</b> (<b class='flag-5'>Want</b>)】

    鸿蒙Ability Kit程序框架服务)【UIAbility组件概述

    UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
    的头像 发表于 05-30 20:17 161次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【UIAbility组件<b class='flag-5'>概述</b>】

    鸿蒙Ability Kit程序框架服务)【Ability与ServiceExtensionAbility通信】

    本示例展示通过[IDL的方式]和 [@ohos.rpc] 等接口实现了Ability与ServiceExtensionAbility之间的通信。
    的头像 发表于 06-05 09:28 245次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【<b class='flag-5'>Ability</b>与ServiceExtensionAbility通信】

    鸿蒙Ability Kit程序框架服务)【显式Want与隐式Want匹配规则】

    在启动目标应用组件时,会通过显式[Want]或者隐式[Want]进行目标应用组件的匹配,这里说的匹配规则就是调用方传入的[want]参数中设置的参数如何与目标应用组件声明的配置文件进行匹配。
    的头像 发表于 06-06 14:30 131次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【显式<b class='flag-5'>Want</b>与隐式<b class='flag-5'>Want</b>匹配规则】

    鸿蒙Ability Kit程序框架服务)【使用隐式Want打开网址】

    以打开浏览器为例,假设设备上安装了一个或多个浏览器应用。
    的头像 发表于 06-07 09:51 203次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【使用隐式<b class='flag-5'>Want</b>打开网址】

    鸿蒙Ability Kit程序框架服务)【应用间使用Want分享数据】

    在应用使用场景中,用户经常需要将应用内的数据(如文字、图片等)分享至其他应用以供进一步处理。Want支持实现应用间的数据分享。
    的头像 发表于 06-07 15:19 199次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>)【应用间使用<b class='flag-5'>Want</b>分享数据】

    鸿蒙Ability Kit程序框架服务)【应用启动框架AppStartup】

    `AppStartup`提供了一种更加简单高效的初始化组件的方式,支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的组件实现`AppStartup`提供
    的头像 发表于 06-10 18:38 389次阅读

    鸿蒙开发Ability Kit程序框架服务:任务管理

    AbilityRecord:系统服务侧管理一个UIAbility实例的最小单元,对应一个应用侧的UIAbility组件实例。系统服务侧管理UIAbility实例数量上限为512个。
    的头像 发表于 06-24 14:46 112次阅读
    <b class='flag-5'>鸿蒙</b>开发<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服务</b>:任务管理