服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤 原创

在敲键盘的小鱼干很饥饿
发布于 2024-12-18 20:52
浏览
2收藏

前言

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

服务卡片介绍

服务卡片架构

服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区

服务卡片实现原理

服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区

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

ArkTs服务卡片优势

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

ArkTs卡片的模块

服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区

  • 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,也可以在创建工程后右键新建卡片。
    服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区

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

  1. 新建卡片
    服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区
    说明:在API 10及以上 Stage模型的工程中,在Service Widget菜单可直接选择创建动态或静态服务卡片。创建服务卡片后,也可以在卡片的form_config.json配置文件中,通过isDynamic参数修改卡片类型:isDynamic置空或赋值为"true",则该卡片为动态卡片;isDynamic赋值为"false",则该卡片为静态卡片。
  2. 选择合适模板
    服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区
  3. 选择ArkTS语言,和合适的大小
    服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区
    ArkTS卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ets)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。
    服务卡片开发指南:打造更便捷的用户体验 (基于ArkTs UI 的卡片开发)基础步骤-鸿蒙开发者社区
    现在就可以进行服务卡片的开发了

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2024-12-25 11:13:14修改
3
收藏 2
回复
举报
4条回复
按时间正序
/
按时间倒序
mb6759406178e33
mb6759406178e33

大佬太厉害了,这对我真的很有用。感谢分享

回复
2024-12-19 16:43:57
bond_heloworld
bond_heloworld

大佬,好牛,很有用的教学,感谢分享


回复
2024-12-19 16:52:06
X叶域Q
X叶域Q

卡片做的很好

回复
2024-12-19 18:03:49
bond_heloworld
bond_heloworld

太强了,真的很详细,学到了

回复
2024-12-26 10:32:01
回复
    相关推荐