鸿蒙应用入门级开发者认证实验七(桌面卡片)
【摘要】 postCardAction 是处理卡片动作的核心函数,作用于卡片(如服务卡片或静态卡片)的交互事件。允许卡片触发预定义的动作类型,实现与提供方应用(如 UIAbility 或 FormExtensionAbility)的通信或跳转。支持三种预定义的动作类型,覆盖了卡片交互的主要场景,例如跳转页面、发送消息或后台操作。router:跳转到提供方应用的指定 UIAbility(用户界面能力)。...

postCardAction 是处理卡片动作的核心函数,作用于卡片(如服务卡片或静态卡片)的交互事件。允许卡片触发预定义的动作类型,实现与提供方应用(如 UIAbility 或 FormExtensionAbility)的通信或跳转。支持三种预定义的动作类型,覆盖了卡片交互的主要场景,例如跳转页面、发送消息或后台操作。
- router:跳转到提供方应用的指定 UIAbility(用户界面能力)。
- message:发送自定义消息,触发提供方 FormExtensionAbility 的
onFormEvent()生命周期回调。适用于卡片与后台的逻辑交互,例如更新卡片数据或处理用户输入。 - call:后台启动提供方应用,拉起指定的 UIAbility(仅支持启动模式为单实例的 UIAbility)。应用不会调度到前台,通常用于后台任务执行(如数据同步),需应用具备后台运行权限(
ohos.permission.KEEP_BACKGROUND_RUNNING)。
关键参数:
- action(必填):指定动作类型(‘router’、‘message’ 或 ‘call’)。
- abilityName(可选):用于 ‘router’ 和 ‘call’ 类型,指定目标 UIAbility 的名称。
- params(可选):JSON 格式的额外参数,用于传递自定义数据(如页面标识或消息内容)。在 ‘call’ 类型中,必须包含 ‘method’ 参数指定调用的方法名。
- bundleName 和 moduleName(可选):用于 ‘router’ 和 ‘call’ 类型,指定目标应用的包名和模块名。
- uri(API 11+,可选):用于 ‘router’ 类型的深度链接(统一资源标识符)。如果同时设置 uri 和 abilityName,则 abilityName 优先。
postCardAction(this, {
"action": this.ACTION_TYPE, // 假设为 'router'
"abilityName": this.ABILITY_NAME, // 目标 UIAbility 名
"params": {
'targetPage': 'home' // 自定义参数,在 EntryAbility 中解析并处理
}
});
通过 ‘router’ 动作跳转到目标 UIAbility(如 EntryAbility),params 中的 ‘targetPage’: ‘home’ 是自定义参数,用于在目标 UIAbility 中指定跳转逻辑(如打开首页)。典型场景:例如公交地铁类应用中,用户点击桌面卡片快速跳转至乘车码页面。能高效实现卡片与应用间的无缝交互。
Form(服务卡片)是一种轻量化的应用界面组件,是应用在桌面上提供的一种独立展示单元,允许用户无需打开完整应用即可快速查看关键信息或执行简单操作。占用资源少,独立于主应用运行,通过系统服务管理生命周期。支持定时/事件驱动刷新(如每30分钟更新天气数据)。同一卡片可配置 2×2、2×4、4×4 等网格尺寸,自适应不同设备。支持点击事件(如跳转页面、触发服务)、动态数据绑定等。
- 声明式开发:通过 ArkUI 的
@Component和@Entry装饰器定义卡片 UI。 - 数据管理:使用
FormExtensionAbility处理数据请求与更新逻辑。 - 卡片配置:在
module.json5中声明卡片尺寸、更新策略等元数据。
Form 不同于传统应用界面,其设计需遵循信息极简原则,建议通过
@kit.ArkUI的FormComponent实现基础能力,并利用@kit.FormKit的卡片管理接口进行动态控制。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)