卡片简介

什么是卡片呢?下面基于我的理解,简单介绍。

卡片的作用是什么?

  1. 卡片是为了简化进入App中某一个页面的步骤。
  2. 卡片是为了展示卡片中的精华功能
  3. 多个精华功能也可以有多个卡片
  4. 点击卡片后,根据点击产生不同的卡片页面

卡片的能力是什么?

  1. 点击卡片,打开App页面 ----- 路由跳转
  2. 点击卡片,实现某些功能 ----- call加载应用在后台
  3. 点击卡片,卡片的内容更新 ----- message卡片内容更新

卡片又称服务卡片,卡片是为谁服务的?我从四个纬度解释这个问题。

卡片的基本组成

卡片分为静态卡片和动态卡片,下面从卡片的配置文件开始学习卡片,卡片共同点的事件能力掌握卡片

静态和动态卡片一大不同点,就是在Page页面使用时不同,还有一些配置文件不同。

推荐使用 动态卡片

卡片的配置文件

通过上面的配置文件介绍,我们简单的了解卡片

卡片事件能力

卡片内部和提供方应用间的交互交互事件有三种,分别为router,message,call。

f5577597d8704a01a215cadb2b4c03f5.png

通过上图,不难看出,鸿蒙推荐的做法是,router对应打开前台页面,call对应在后台执行任务,message对应卡片内容更新

 Card.ets是我们的主界面,postCardAction是主界面的一个方法,方法中有一个属性“action”,可以通过这个属性指定事件交互类型

UIAbility是我们想要使用的Ability

FormExtensionAbility是卡片的Ability

Router事件

3cf4bb32a0b24f46a444b2a4d42ce53a.png

事件流程

  1. 卡片触发点击事件,事件类型为router,参数为自定义message
  2. 打开对应的Ability界面
  3. 在主应用中EntryAbility有两个方法onCreate和onNewWant,可以接受使用message参数
  4. onCreate:在UIAbility创建时的生命周期回调函数
  5. onNewWant:如果UIAbility已在后台运行,在收到router事件后,会触发onNewWant生命周期回调
  6. 我们可以通过上面两个函数接受参数,处理需要执行的逻辑

例子

router事件是用来点击卡片时,根据不同的需求,打开App中不同的页面

现在,假定开发了一个运动App,有很多运动类型,可以通过在卡片上不同的按钮进入不同的运动类型界面,这时,就需要message参数的信息确定进入的页面

b801701ee4b7400581e06840be398f00.png

82e3c267f7024058871d0a6d2e42f86f.png

Call事件

事件流程

  1. 卡片触发点击事件,call,将Ability放到后台运行
  2. 后台运行Ability中有两个主要方法onCreate,onDestory(因为是拉起Ability到后台,所以窗口创建等生命周期函数没有多大用处)
  3. 在这两个方法中,就可以处理需要执行的逻辑

例子

音乐卡片中,卡片提供了播放,暂停等按钮,点击按钮时就可以让音乐应用在后台运行

Message事件

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

卡片是如何更新内容获取内容呢?

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

如下图

卡片内容更新方式总结
  1. message事件更新,事件能力图中主推的方法
  2. 定时更新,可以在配置文件中设置定时更新事件,调用onUpdateForm来实现定时更新
  3. router和call事件,卡片使用方来主动更新,也是调用onUpdateForm

卡片管理服务

用于管理系统中所添加卡片的常驻代理服务,提供formProviderformHost的接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。

上面是官网上的解释

简化而言,拉起服务卡片,回调刷新卡片就是卡片管理方

卡片的提供方

提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。

上面是官网上的解释

简化而言,就是卡片的Ability

卡片的使用方

显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。

上面是官网上的解释

简化而言,就是卡片页面通过事件能力调用Ability中的方法

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐