HarmonyOS NEXT卡片
从0开始学习HarmonyOS Next元服务卡片
卡片简介
什么是卡片呢?下面基于我的理解,简单介绍。
卡片的作用是什么?
- 卡片是为了简化进入App中某一个页面的步骤。
- 卡片是为了展示卡片中的精华功能
- 多个精华功能也可以有多个卡片
- 点击卡片后,根据点击产生不同的卡片页面
卡片的能力是什么?
- 点击卡片,打开App页面 ----- 路由跳转
- 点击卡片,实现某些功能 ----- call加载应用在后台
- 点击卡片,卡片的内容更新 ----- message卡片内容更新
卡片又称服务卡片,卡片是为谁服务的?我从四个纬度解释这个问题。
卡片的基本组成
卡片分为静态卡片和动态卡片,下面从卡片的配置文件开始学习卡片,卡片共同点的事件能力掌握卡片
静态和动态卡片一大不同点,就是在Page页面使用时不同,还有一些配置文件不同。
推荐使用 动态卡片
卡片的配置文件

通过上面的配置文件介绍,我们简单的了解卡片
卡片事件能力
卡片内部和提供方应用间的交互交互事件有三种,分别为router,message,call。

通过上图,不难看出,鸿蒙推荐的做法是,router对应打开前台页面,call对应在后台执行任务,message对应卡片内容更新
Card.ets是我们的主界面,postCardAction是主界面的一个方法,方法中有一个属性“action”,可以通过这个属性指定事件交互类型
UIAbility是我们想要使用的Ability
FormExtensionAbility是卡片的Ability
Router事件

事件流程
- 卡片触发点击事件,事件类型为router,参数为自定义message
- 打开对应的Ability界面
- 在主应用中EntryAbility有两个方法onCreate和onNewWant,可以接受使用message参数
- onCreate:在UIAbility创建时的生命周期回调函数
- onNewWant:如果UIAbility已在后台运行,在收到router事件后,会触发onNewWant生命周期回调
- 我们可以通过上面两个函数接受参数,处理需要执行的逻辑
例子
router事件是用来点击卡片时,根据不同的需求,打开App中不同的页面
现在,假定开发了一个运动App,有很多运动类型,可以通过在卡片上不同的按钮进入不同的运动类型界面,这时,就需要message参数的信息确定进入的页面
Call事件

事件流程
- 卡片触发点击事件,call,将Ability放到后台运行
- 后台运行Ability中有两个主要方法onCreate,onDestory(因为是拉起Ability到后台,所以窗口创建等生命周期函数没有多大用处)
- 在这两个方法中,就可以处理需要执行的逻辑
例子
音乐卡片中,卡片提供了播放,暂停等按钮,点击按钮时就可以让音乐应用在后台运行
Message事件

message事件主要就是用来更新卡片的信息,如上面的事件能力图,message事件可以调用EntryFormAbility中的onFormEvent方法来更新卡片内容
卡片是如何更新内容获取内容呢?

如上图所示,同过调用fromProvider中的update方法来更新内容,在卡片中通过LocalStorageProp来接受内容
如下图


卡片内容更新方式总结
- message事件更新,事件能力图中主推的方法
- 定时更新,可以在配置文件中设置定时更新事件,调用onUpdateForm来实现定时更新
- router和call事件,卡片使用方来主动更新,也是调用onUpdateForm
卡片管理服务
用于管理系统中所添加卡片的常驻代理服务,提供formProvider和formHost的接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。
上面是官网上的解释
简化而言,拉起服务卡片,回调刷新卡片就是卡片管理方
卡片的提供方
提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。
上面是官网上的解释
简化而言,就是卡片的Ability
卡片的使用方
显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。
上面是官网上的解释
简化而言,就是卡片页面通过事件能力调用Ability中的方法
更多推荐




所有评论(0)