【HM】HarmonyOS 鸿蒙Next元服务卡片开发必须要搞明白的两张图表:数据交互和事件能力

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

【HM】HarmonyOS 鸿蒙Next元服务卡片开发必须要搞明白的两张图表:数据交互和事件能力

举个例子,手机负一屏中的“日程”卡片

cke_4865.jpg

1、点击卡片进入日程首页;

2、点击+直接进入日程创建页;

3、在日程应用创建/修改了日程,同步刷新卡片数据;

4、每隔30分钟定时刷新卡片数据;

5、每天中午12:15定点刷新卡片数据;

实现上述功能或带着这些问题,继续往下理解:

一、数据交互

image.png

首先理解图中每个大方框对象,

UIAbility:日程应用的入口页面或其他页面对象;

Card.ets:卡片页面ArkUI布局文件;

FormExtensionAbility:卡片的生命周期;

卡片使用方:比如负一屏、应用商店、小艺搜索等展示卡片的地方(宿主);

另外,还需要知道

卡片提供方:UIAbility、FormExtensionAbility,简单理解就是日程的应用;

卡片管理方:定时任务、刷新管理、配置管理、Push等代理服务;

所以,

日程创建/修改成功后,调用formProvider对象的updateForm方法即可更新卡片数据。(实现功能3

在form_config.json配置文件中设置updateDuration定时参数(单位粒度是30分钟)、scheduledUpdateTime定点参数,

  1. “scheduledUpdateTime”: “12:15”,
  2. “updateDuration”: 1,

之后在FormExtensionAbility的生命周期函数onUpdateForm内调用formProvider对象的updateForm方法即可更新卡片数据。(实现功能4和5)  

二、事件能力

image.png

图中大方框的对象介绍同上。

日程卡片Card.ets 提供了postCardAction接口,用于卡片自己内部和卡片提供方UIAbility对象间的交互,支持router、call和message三种类型的事件:

router事件:可以拉起指定的UIAbility;比如日程首页(实现功能1);

call事件:可以调用卡片提供方指定的方法;比如+调用创建日程的方法(实现功能2);

message事件:卡片自身内部实现数据刷新,通过在FormExtensionAbility的生命周期函数onFormEvent内调用formProvider对象的updateForm方法。

参考官方资料:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-ui-widget-creation-V5

1 回复

在HarmonyOS鸿蒙Next元服务卡片开发中,数据交互和事件能力是核心的两个概念,它们之间的关系可以通过以下两张图表进行说明:

数据交互图表

由于具体数据未提供,无法直接绘制图表。但通常,数据交互图表可以展示卡片与后端服务之间的数据流,包括数据请求、数据更新、数据同步等过程。

事件能力图表

columns data type
事件类型 router, message, call 柱状图
描述 跳转到指定UIAbility、拉起扩展能力、拉起后台能力等
{
    "columns": ["事件类型", "描述"],
    "data": [
        ["router", "跳转到指定UIAbility"],
        ["message", "拉起扩展能力"],
        ["call", "拉起后台能力等"]
    ],
    "type": "bar"
}

此图表展示了鸿蒙Next元服务卡片支持的主要事件类型及其功能描述。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部