• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Form Kit简介
2<!--Kit: Form Kit-->
3<!--Subsystem: Ability-->
4<!--Owner: @cx983299475-->
5<!--Designer: @xueyulong-->
6<!--Tester: @chenmingze-->
7<!--Adviser: @Brilliantry_Rui-->
8Form Kit(卡片开发框架)提供了一种在桌面<!--RP3--><!--RP3End-->上嵌入显示应用信息的开发框架和API,可以将应用内用户关注的重要信息或常用操作抽取到服务卡片(简称“卡片”)上,通过将卡片添加到桌面<!--RP3--><!--RP3End-->上,以达到信息展示、服务直达的便捷体验效果。
9
10## 卡片使用场景
11- 支持设备类型:手机、平板、PC/2in1、智慧屏、智能手表。轻量级智能穿戴设备不支持使用本Kit。
12- 支持开发卡片应用类型:应用和元服务内均支持开发卡片。
13- 支持卡片使用位置:用户可以在桌面<!--RP3--><!--RP3End-->上添加使用,不支持在普通应用内嵌入显示卡片。
14- 卡片使用步骤:
15
161. 长按“桌面的应用图标”,弹出操作菜单。
172. 点击“<!--Del-->服务<!--DelEnd-->卡片”选项,进入卡片管理页面,可以预览卡片。
183. 点击“添加到桌面”按钮,即可在桌面上看到<!--Del-->并操作<!--DelEnd-->新添加的卡片
19
20**图1** 卡片常见使用步骤
21<!--RP2-->
22![WidgetUse](figures/WidgetUse.png)
23<!--RP2End-->
24
25## 服务卡片架构
26**图2** 服务卡片架构
27![formKit_l0](figures/formKit_l0.PNG)
28
29**卡片场景中涉及到的基本概念**
30- 卡片使用方:如上图中的桌面,作为显示卡片内容的宿主应用,用于与用户直接进行交互,完成卡片添加、删除、显示功能,并能控制卡片在宿主中具体展示的位置。
31- 卡片提供方:提供卡片的应用或元服务,是卡片功能的具体实现者,需要设计实现卡片UI、数据更新、以及点击交互处理功能。
32- 卡片管理服务:操作系统内管理整机卡片信息的系统服务,作为卡片提供方和使用方的桥梁,向使用方提供卡片信息查询、添加、删除等能力,同时向提供方提供卡片被添加、被删除、刷新、点击事件等通知能力。
33
34
35## 亮点/特征
36- 信息呈现:将应用/元服务的重要信息以卡片形式展示在桌面,同时支持信息定时更新能力,用户可以随时查看关注的信息。
37
38- 服务直达:通过点击卡片内按钮,就可以实现功能快捷操作,也支持点击后跳转到应用/元服务对应功能页,实现功能服务一步直达的效果。
39
40
41## 开发模式
42
43**模型选择**
44
45当前系统中应用支持Stage和FA两种开发模型,所以Form Kit也同时支持开发者使用Stage模型和FA模型来开发卡片应用,但更推荐使用Stage模型。
46
47**UI开发范式选择**
48- Stage模型支持两种卡片UI开发方式,可以基于ArkTS声明式开发范式语言开发卡片(简称ArkTS卡片)、也可以基于兼容JS的类Web开发范式语言开发卡片(简称JS卡片)。
49- FA模型仅支持基于类Web范式JS语言开发JS卡片。
50
51ArkTS卡片与JS卡片具备不同的实现原理及特征,在场景能力上的差异如下表所示:
52
53| 类别         | JS卡片    | ArkTS卡片  |
54| ------------ | --------- | ---------- |
55| 开发范式     | 类Web范式 | 声明式范式 |
56| 组件能力     | 支持      | 支持       |
57| 布局能力     | 支持      | 支持       |
58| 事件能力     | 支持      | 支持       |
59| 自定义动效   | 不支持    | 支持       |
60| 自定义绘制   | 不支持    | 支持       |
61| 逻辑代码执行 | 不支持    | 支持       |
62
63## 与相关Kit的关系
64
65- Ability Kit: Form Kit内部实现依赖Ability Kit提供的Extension基础能力,与Ability Kit存在生命周期调度交互。
66- ArkUI: Form Kit卡片提供方在卡片页面中可以使用ArkUI提供的部分组件、事件、动效、状态管理等能力。
67
68<!--RP1--><!--RP1End-->
69