1# 创建ArkTS卡片 2<!--Kit: Form Kit--> 3<!--Subsystem: Ability--> 4<!--Owner: @cx983299475--> 5<!--Designer: @xueyulong--> 6<!--Tester: @chenmingze--> 7<!--Adviser: @Brilliantry_Rui--> 8ArkTS卡片有两种创建卡片包的方式。开发者在开发过程中任选其一即可。<br> 9方式一:卡片和应用共包方式,创建步骤请参考[共包方式创建卡片](./arkts-ui-widget-creation.md#方式一共包方式创建卡片),此时卡片UI和应用代码在一个module内,最终编译产物也在同一个HAP包内。<br> 10方式二:独立卡片包方式,创建步骤请参考[独立包方式创建卡片](./arkts-ui-widget-creation.md#方式二独立包方式创建卡片),此时卡片UI和应用代码在不同module内,最终编译产物分为卡片包和应用包。从API version 20开始支持。 11## 方式一:共包方式创建卡片 12### 创建步骤 13**1. 新建工程** <br/> 14在DevEco Studio中,选择创建Application或Atomic Service工程,这两种都支持创建卡片。工程创建指导具体请参考[创建一个新的工程](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-create-new-project)。<br> 15 16 17>**说明:** 18> 19> 基于不同版本的DevEco Studio,请以实际界面为准。 20 21**2. 新建卡片** <br/> 22在已有的应用工程中,右键新建ArkTS卡片,具体操作如下。 23 24- 选中entry目录单击右键选择【New】->【Service Widget】->【Dynamic Widget】。在API 10及以上 Stage模型的工程中,开发者可通过Service Widget菜单可直接选择创建动态卡片(Dynamic Widget)或静态卡片(Static Widget)。创建卡片后,也可在卡片的[form_config.json配置文件](arkts-ui-widget-configuration.md)中,通过isDynamic参数修改卡片类型:isDynamic置空或赋值为“true”,则该卡片为[为动态卡片](./arkts-form-overview.md#动态卡片);isDynamic赋值为"false",则该卡片为[静态卡片](./arkts-form-overview.md#静态卡片)。静态卡片和动态卡片切换之后用户交互实现也需要修改,具体参考ArkTS卡片概述中的[动态卡片](./arkts-form-overview.md#动态卡片)和[静态卡片](./arkts-form-overview.md#静态卡片)。<br> 25  26 27- 选择模板后,点击【Next】。<br> 28  29 30- 在选择卡片的开发语言类型(Language)时,选择ArkTS选项。选择卡片支持的外观规格(Support dimension)时,选择期望的卡片尺寸,然后选择默认的外观规格(Default dimension),最后点击“Finish”,即可完成ArkTS卡片创建。详细的卡片外观规格可参考[form_config.json](arkts-ui-widget-configuration.md#配置文件字段说明)配置文件,后续也可以在form_config.json配置文件中修改卡片规格。<br> 31  32 33 建议根据实际使用场景命名卡片名称,ArkTS卡片创建完成后,工程中会新增如下卡片相关文件:卡片生命周期管理文件(EntryFormAbility.ets)、卡片页面文件(WidgetCard.ets)和卡片配置文件(form_config.json)。填写卡片配置之后点击【Finish】。<br> 34  35### 工程结构介绍 36**图1** ArkTS卡片工程目录、相关模块<br> 37 38- [FormExtensionAbility](../reference/apis-form-kit/js-apis-app-form-formExtensionAbility.md):卡片扩展模块,提供卡片创建、销毁、刷新等生命周期回调。 39 40- [FormExtensionContext](../reference/apis-form-kit/js-apis-inner-application-formExtensionContext.md):FormExtensionAbility的上下文环境,提供FormExtensionAbility具有的接口和能力。 41 42- [formProvider](../reference/apis-form-kit/js-apis-app-form-formProvider.md):提供了获取卡片信息、更新卡片、设置卡片更新时间等能力。 43 44- [formInfo](../reference/apis-form-kit/js-apis-app-form-formInfo.md):提供了卡片信息和状态等相关类型和枚举。 45 46- [formBindingData](../reference/apis-form-kit/js-apis-app-form-formBindingData.md):提供卡片数据绑定的能力,包括FormBindingData对象的创建、相关信息的描述。 47 48- [页面布局(WidgetCard.ets)](arkts-ui-widget-page-overview.md):基于ArkUI提供卡片UI开发能力。 49 - [ArkTS卡片通用能力](arkts-ui-widget-page-overview.md#arkts卡片支持的页面能力):提供了能在ArkTS卡片中使用的组件、属性和API。 50 - [ArkTS卡片特有能力](arkts-ui-widget-event-overview.md):postCardAction用于卡片内部和提供方应用间的交互,仅在卡片中可以调用。 51 52- [卡片配置](arkts-ui-widget-configuration.md):包含FormExtensionAbility的配置和卡片的配置。 53 - 在[module.json5配置文件](../quick-start/module-configuration-file.md)中的extensionAbilities标签下,配置FormExtensionAbility相关信息。 54 - 在resources/base/profile/目录下的[form_config.json](arkts-ui-widget-configuration.md#配置文件字段说明)配置文件中,配置卡片(WidgetCard.ets)相关信息。 55 56## 方式二:独立包方式创建卡片 57### 创建步骤 58**1. 新建工程**<br> 59在DevEco Studio中,选择创建Application或Atomic Service工程,这两种都支持创建卡片。工程创建指导具体请参考[创建一个新的工程](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-create-new-project)。<br> 60 61 62>**说明:** 63> 64> 基于不同版本的DevEco Studio,请以实际界面为准。<br> 65 66**2. 新建卡片**<br> 67- 选中entry目录单击右键选择【New】->【Service Widget】->【Dynamic Widget(Standalone)】。在Service Widget菜单可直接选择创建独立包的动态卡片(Dynamic Widget(standalone))或静态卡片(Static Widget(standalone))。创建服务卡片后,也可以在卡片的[form_config.json配置文件](arkts-ui-widget-configuration.md)中,通过isDynamic参数修改卡片类型:isDynamic置空或赋值为“true”,则该卡片为[动态卡片](./arkts-form-overview.md#动态卡片);isDynamic赋值为"false",则该卡片为[静态卡片](./arkts-form-overview.md#静态卡片)。静态卡片和动态卡片切换之后用户交互实现也需要修改,具体参考ArkTS卡片概述中的[动态卡片](./arkts-form-overview.md#动态卡片)和[静态卡片](./arkts-form-overview.md#静态卡片)。<br> 68 69- 选择模板后,点击【Next】。<br> 70 71- 填写卡片配置之后点击【Finish】。卡片创建成功后,entry包中包含应用和卡片后端能力;library包中包含卡片UI侧能力。entry模块下的`module.json5`配置文件中的`formWidgetModule`字段需关联library模块,library模块下的`module.json5`配置文件中的`formExtensionModule`字段需关联entry模块,以实现卡片包和应用包相互关联。创建完成后,会自动生成配置文件并进行配置,后续也可以在按照[卡片配置文件](./arkts-ui-widget-configuration.md#配置arkts卡片的配置文件)指导配置。<br> 72 73### 工程结构介绍 74独立卡片包与卡片共包方式创建卡片,仅工程结构存在差异,生成的文件是一致的,各文件具体内容请参考[共包方式工程结构介绍](./arkts-ui-widget-creation.md#工程结构介绍)。<br> 75**图2** 独立卡片包工程目录。<br> 76<br> 77>**说明:** 78> 79> 独立卡片包中应用包和卡片包为2个独立模块,因此需要关注同时安装的应用包和卡片包版本号一致。 80