前言

OpenHarmony的Form Kit卡片开发服务主要用于提供一种轻量级、可定制的功能组件,使得开发者可以为用户提供便捷的服务入口。卡片通常可以展示在桌面或其他指定区域,用户可以通过点击卡片直接访问应用的主要功能或获取信息,无需打开整个应用,从而提高用户体验和操作效率。
Form Kit(卡片开发服务)提供一种界面展示形式,可以将应用的重要信息或操作前置到服务卡片(以下简称“卡片”),以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应用(当前被嵌入方即卡片使用方只支持系统应用,例如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础的交互能力。

服务卡片介绍

服务卡片架构

image.png

服务卡片实现原理

image.png

  • 卡片使用方:显示卡片内容的宿主应用,控制卡片在宿主中展示的位置,当前仅系统应用可以作为卡片使用方。
  • 卡片提供方:提供卡片显示内容的应用,控制卡片的显示内容、控件布局以及控件点击事件。
  • 卡片管理服务:用于管理系统中所添加卡片的常驻代理服务,提供formProvider和formHost的接口能力,同时提供卡片对象的管理与使用以及卡片周期性刷新等能力。
  • 卡片渲染服务:用于管理卡片渲染实例,渲染实例与卡片使用方上的卡片组件一一绑定。卡片渲染服务运行卡片页面代码widgets.abc进行渲染,并将渲染后的数据发送至卡片使用方对应的卡片组件。

    ArkTs服务卡片优势

  • 统一开发范式,提升开发体验和开发效率。
    提供ArkTS卡片能力后,统一了卡片和页面的开发范式,页面的布局可以直接复用到卡片布局中,提升开发体验和开发效率。
  • 增强了卡片的能力,使卡片更加万能。
    新增了动效的能力:ArkTS卡片开放了属性动画和显式动画的能力,使卡片的交互更加友好。
    新增了自定义绘制的能力:ArkTS卡片开放了Canvas画布组件的能力,卡片可以使用自定义绘制的能力构建更多样的显示和交互效果。
    允许卡片中运行逻辑代码:开放逻辑代码运行后很多业务逻辑可以在卡片内部自闭环,拓宽了卡片的业务适用场景。

    ArkTs卡片的模块

    image.png

  • FormExtensionAbility:卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。
  • FormExtensionContext:FormExtensionAbility的上下文环境,提供FormExtensionAbility具有的接口和能力。
  • formProvider:提供卡片提供方相关的接口能力,可通过该模块提供接口实现更新卡片、设置卡片更新时间、获取卡片信息、请求发布卡片等。
  • formInfo:提供了卡片信息和状态等相关类型和枚举。
  • formBindingData:提供卡片数据绑定的能力,包括FormBindingData对象的创建、相关信息的描述。
  • 页面布局(WidgetCard.ets):提供声明式范式的UI接口能力。
    ArkTS卡片特有能力:postCardAction用于卡片内部和提供方应用间的交互,仅在卡片中可以调用。
    ArkTS卡片能力列表:列举了能在ArkTS卡片中使用的API、组件、事件、属性和生命周期调度。
  • 卡片配置:包含FormExtensionAbility的配置和卡片的配置
    在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相关信息。
    在resources/base/profile/目录下的form_config.json配置文件中,配置卡片(WidgetCard.ets)相关信息。

    服务卡片开发步骤

    两种方式
  • 创建工程时,选择Application,默认不带卡片,可以在创建工程后右键新建卡片。
  • 创建工程时,选择Atomic Service,也可以在创建工程后右键新建卡片。

    image.png

在已有的应用工程中,可以通过右键新建ArkTS卡片,具体的操作方式如下

  1. 新建卡片

    image.png

说明:在API 10及以上 Stage模型的工程中,在Service Widget菜单可直接选择创建动态或静态服务卡片。创建服务卡片后,也可以在卡片的form_config.json配置文件中,通过isDynamic参数修改卡片类型:isDynamic置空或赋值为"true",则该卡片为动态卡片;isDynamic赋值为"false",则该卡片为静态卡片。
2. 选择合适模板

image.png


3. 选择ArkTS语言,和合适的大小

image.png


ArkTS卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ets)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。

image.png


现在就可以进行服务卡片的开发了

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐