1e41f4b71Sopenharmony_ci# FormComponent (系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci提供卡片组件,实现卡片的显示功能。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci>  **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> - 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> - 该组件为卡片组件的使用方,对应提供方的使用参考文档[JS服务卡片UI组件](../js-service-widget-ui/js-service-widget-file.md)。
10e41f4b71Sopenharmony_ci>
11e41f4b71Sopenharmony_ci> - 该组件使用需要具有系统签名。
12e41f4b71Sopenharmony_ci>
13e41f4b71Sopenharmony_ci> - 本模块为系统接口。
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## 权限
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciohos.permission.REQUIRE_FORM, ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci## 子组件
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci## 接口
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ciFormComponent (value: FormInfo)
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci创建卡片组件,用于显示提供的卡片。
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**参数:**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| 参数名    | 参数类型                        | 必填 | 参数描述                                                                |
34e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ----------------------------------------------------------------------- |
35e41f4b71Sopenharmony_ci| value        | [FormInfo](#forminfo12)                 | 是   | 卡片信息。   |
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci## FormInfo<sup>12+</sup>
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci卡片信息。
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci| 参数名    | 参数类型                        | 必填 | 参数描述                                                                |
42e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- |-------|
43e41f4b71Sopenharmony_ci| id        | number \| string                    | 是   | 卡片标识(新建卡片填0)。<br/>**说明:**<br>不同使用方不可使用相同id。<br/>同一使用方使用相同id时,显示后添加的卡片。                                        |
44e41f4b71Sopenharmony_ci| name      | string                          | 是   | 卡片名称。                                                              |
45e41f4b71Sopenharmony_ci| bundle    | string                          | 是   | 目标卡片包名。                                                          |
46e41f4b71Sopenharmony_ci| ability   | string                          | 是   | 目标卡片Ability名称。                                                   |
47e41f4b71Sopenharmony_ci| module    | string                          | 是   | 卡片模块名称。                                                          |
48e41f4b71Sopenharmony_ci| dimension | [FormDimension](#formdimension) | 否   | 卡片尺寸,支持2 * 2,4 * 4,4 * 2类型卡片。<br/>默认值:Dimension_2_2。 |
49e41f4b71Sopenharmony_ci| temporary | boolean                         | 否   | 卡片是否为临时卡片。                                                    |
50e41f4b71Sopenharmony_ci| renderingMode | [FormRenderingMode](#formrenderingmode11) | 否   | 卡片渲染模式。取值如下,默认值为 FULL_COLOR。<br>- FULL_COLOR:代表全色模式,卡片框架不会对卡片效果做出修改,保持和卡片开发者设置的效果不变。<br>- SINGLE_COLOR:代表单色模式,卡片框架会把卡片背景设为透明,开发者需按最佳实践设置卡片风格。<br>**说明:**<br/>如果系统不支持统一渲染模式,卡片框架在单色模式下也不会把卡片背景设为透明。 |
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci## FormCallbackInfo<sup>12+</sup>
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci卡片查询或者卸载时获取formId的参数。
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci| 参数名    | 参数类型                        | 必填 | 参数描述                                                                |
57e41f4b71Sopenharmony_ci| --------- | ------------------------------- | ---- | ----------------------------------------------------------------------- |
58e41f4b71Sopenharmony_ci| id        | number                 | 是   | 卡片标识(number类型)。<br/>**说明:**<br>如果获取到的id为-1,说明id大于等于2^53,需要使用idString获取。                                        |
59e41f4b71Sopenharmony_ci| idString      | string                          | 是   | 卡片标识(string类型)。<br/>                                                              |
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ci## FormDimension
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci| 名称                       | 描述     |
64e41f4b71Sopenharmony_ci| -------------------------- | -------- |
65e41f4b71Sopenharmony_ci| Dimension_1_2              | 1*2 卡片 |
66e41f4b71Sopenharmony_ci| Dimension_2_2              | 2*2 卡片 |
67e41f4b71Sopenharmony_ci| Dimension_2_4              | 2*4 卡片 |
68e41f4b71Sopenharmony_ci| Dimension_4_4              | 4*4 卡片 |
69e41f4b71Sopenharmony_ci| Dimension_2_1<sup>9+</sup> | 2*1 卡片 |
70e41f4b71Sopenharmony_ci| Dimension_1_1<sup>11+</sup> | 1*1 卡片 |
71e41f4b71Sopenharmony_ci| Dimension_6_4<sup>12+</sup> | 6*4 卡片 |
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci## FormRenderingMode<sup>11+</sup>
74e41f4b71Sopenharmony_ci| 名称                       | 描述     |
75e41f4b71Sopenharmony_ci| -------------------------- | -------- |
76e41f4b71Sopenharmony_ci| FULL_COLOR                 | 全色模式。|
77e41f4b71Sopenharmony_ci| SINGLE_COLOR               | 单色模式。|
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci## 属性
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci### size
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_cisize(value: { width: number; height: number })
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci设置高宽尺寸。
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci**参数:** 
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci| 参数名 | 类型                                                      | 必填 | 说明       |
94e41f4b71Sopenharmony_ci| ------ | --------------------------------------------------------- | ---- | ---------- |
95e41f4b71Sopenharmony_ci| value  | {<br/>width?:&nbsp;number,<br/>height?:&nbsp;number<br/>} | 是   | 宽高尺寸。 |
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci### moduleName
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_cimoduleName(value: string)
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci设置卡片模块名称。
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**参数:** 
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci| 参数名 | 类型   | 必填 | 说明           |
110e41f4b71Sopenharmony_ci| ------ | ------ | ---- | -------------- |
111e41f4b71Sopenharmony_ci| value  | string | 是   | 卡片模块名称。 |
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci### dimension
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_cidimension(value: FormDimension)
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci设置卡片尺寸,支持2 * 2,4 * 4,4 * 2类型卡片。
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci**参数:** 
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci| 参数名 | 类型                            | 必填 | 说明                                 |
126e41f4b71Sopenharmony_ci| ------ | ------------------------------- | ---- | ------------------------------------ |
127e41f4b71Sopenharmony_ci| value  | [FormDimension](#formdimension) | 是   | 卡片尺寸。<br/>默认值:Dimension_2_2 |
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci### allowUpdate
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ciallowUpdate(value: boolean)
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ci设置是否允许卡片更新。
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci**参数:** 
140e41f4b71Sopenharmony_ci
141e41f4b71Sopenharmony_ci| 参数名 | 类型    | 必填 | 说明                                |
142e41f4b71Sopenharmony_ci| ------ | ------- | ---- | ----------------------------------- |
143e41f4b71Sopenharmony_ci| value  | boolean | 是   | 是否允许卡片更新。<br/>默认值:true |
144e41f4b71Sopenharmony_ci
145e41f4b71Sopenharmony_ci### visibility
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_civisibility(value: Visibility)
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci设置是否允许卡片可见。
150e41f4b71Sopenharmony_ci
151e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ci**参数:** 
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci| 参数名 | 类型                                          | 必填 | 说明                                   |
158e41f4b71Sopenharmony_ci| ------ | --------------------------------------------- | ---- | -------------------------------------- |
159e41f4b71Sopenharmony_ci| value  | [Visibility](ts-appendix-enums.md#visibility) | 是   | 是否允许卡片可见。<br/>默认值:Visible |
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci## 事件
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci### onAcquired
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_cionAcquired(callback:&nbsp;Callback[\<FormCallbackInfo>](#formcallbackinfo12)):&nbsp;FormComponentAttribute
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci获取到卡片后触发,返回卡片的id。
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci**参数:** 
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci| 参数名 | 类型                                | 必填 | 说明       |
176e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ---------- |
177e41f4b71Sopenharmony_ci| Callback | [FormCallbackInfo](#formcallbackinfo12) | 是   | 卡片的id。 |
178e41f4b71Sopenharmony_ci
179e41f4b71Sopenharmony_ci### onError
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_cionError(callback: (info: { errcode: number; msg: string }) => void)
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci组件加载错误回调。
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci**参数:** 
190e41f4b71Sopenharmony_ci
191e41f4b71Sopenharmony_ci| 参数名 | 类型                                                         | 必填 | 说明                                            |
192e41f4b71Sopenharmony_ci| ------ | ------------------------------------------------------------ | ---- | ----------------------------------------------- |
193e41f4b71Sopenharmony_ci| info   | &nbsp;{&nbsp;errcode:&nbsp;number,&nbsp;msg:&nbsp;string&nbsp;} | 是   | errcode:&nbsp;错误码。<br/>msg:&nbsp;错误信息。 |
194e41f4b71Sopenharmony_ci
195e41f4b71Sopenharmony_ci### onRouter
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_cionRouter(callback:&nbsp;(info:&nbsp;any)&nbsp;=&gt;&nbsp;void)
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci组件路由事件回调,返回[routerEvent](../js-service-widget-ui/js-service-widget-syntax-hml.md#事件绑定)中的信息。
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
204e41f4b71Sopenharmony_ci
205e41f4b71Sopenharmony_ci**参数:** 
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明                                                         |
208e41f4b71Sopenharmony_ci| ------ | ---- | ---- | ------------------------------------------------------------ |
209e41f4b71Sopenharmony_ci| info   | any  | 是   | [routerEvent](../js-service-widget-ui/js-service-widget-syntax-hml.md#事件绑定)中的信息。 |
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci### onUninstall
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_cionUninstall(callback:&nbsp;Callback[\<FormCallbackInfo>](#formcallbackinfo12)):&nbsp;FormComponentAttribute
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci组件卸载回调,返回卸载卡片的id。
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.ArkUI.ArkUI.Full
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**参数:** 
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci| 参数名 | 类型                                | 必填 | 说明       |
224e41f4b71Sopenharmony_ci| ------ | ----------------------------------- | ---- | ---------- |
225e41f4b71Sopenharmony_ci| Callback   | [FormCallbackInfo](#formcallbackinfo12) | 是   | 卡片的id。 |
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci
228e41f4b71Sopenharmony_ci## 示例
229e41f4b71Sopenharmony_ci
230e41f4b71Sopenharmony_ci卡片示例。
231e41f4b71Sopenharmony_ci
232e41f4b71Sopenharmony_ci该示例创建一张2 * 2尺寸大小的卡片,并注册事件回调。
233e41f4b71Sopenharmony_ci```ts
234e41f4b71Sopenharmony_ci//card.ets
235e41f4b71Sopenharmony_ci@Entry
236e41f4b71Sopenharmony_ci@Component
237e41f4b71Sopenharmony_cistruct CardExample {
238e41f4b71Sopenharmony_ci  @State formId:string = '0';
239e41f4b71Sopenharmony_ci  build() {
240e41f4b71Sopenharmony_ci    Column() {
241e41f4b71Sopenharmony_ci      Text('this is a card')
242e41f4b71Sopenharmony_ci        .fontSize(50)
243e41f4b71Sopenharmony_ci        .fontWeight(FontWeight.Bold)
244e41f4b71Sopenharmony_ci      FormComponent({
245e41f4b71Sopenharmony_ci        id:this.formId,
246e41f4b71Sopenharmony_ci        name:"Form1",
247e41f4b71Sopenharmony_ci        bundle:"com.example.cardexample",
248e41f4b71Sopenharmony_ci        ability:"FormAbility",
249e41f4b71Sopenharmony_ci        module:"entry",
250e41f4b71Sopenharmony_ci        dimension:FormDimension.Dimension_2_2,
251e41f4b71Sopenharmony_ci        temporary:false
252e41f4b71Sopenharmony_ci      })
253e41f4b71Sopenharmony_ci        .allowUpdate(true)
254e41f4b71Sopenharmony_ci        .size({width:360,height:360})
255e41f4b71Sopenharmony_ci        .visibility(Visibility.Visible)
256e41f4b71Sopenharmony_ci        .onAcquired((form: FormCallbackInfo)=>{
257e41f4b71Sopenharmony_ci          console.log(`form info : ${JSON.stringify(form)}`);
258e41f4b71Sopenharmony_ci          // Invalid form id
259e41f4b71Sopenharmony_ci          if (form.id == -1) {
260e41f4b71Sopenharmony_ci            this.formId = form.idString;
261e41f4b71Sopenharmony_ci          } else {
262e41f4b71Sopenharmony_ci            this.formId = form.id.toString();
263e41f4b71Sopenharmony_ci          }
264e41f4b71Sopenharmony_ci        })
265e41f4b71Sopenharmony_ci        .onError((err)=>{
266e41f4b71Sopenharmony_ci          console.log(`fail to add form, err: ${JSON.stringify(err)}`);
267e41f4b71Sopenharmony_ci        })
268e41f4b71Sopenharmony_ci        .onUninstall((form: FormCallbackInfo)=>{
269e41f4b71Sopenharmony_ci          console.log(`uninstall form success : ${JSON.stringify(form)}`);
270e41f4b71Sopenharmony_ci          // Invalid form id
271e41f4b71Sopenharmony_ci          if (form.id == -1) {
272e41f4b71Sopenharmony_ci            this.formId = form.idString;
273e41f4b71Sopenharmony_ci          } else {
274e41f4b71Sopenharmony_ci            this.formId = form.id.toString();
275e41f4b71Sopenharmony_ci          }
276e41f4b71Sopenharmony_ci        })
277e41f4b71Sopenharmony_ci    }
278e41f4b71Sopenharmony_ci    .width('100%')
279e41f4b71Sopenharmony_ci    .height('100%')
280e41f4b71Sopenharmony_ci  }
281e41f4b71Sopenharmony_ci}
282e41f4b71Sopenharmony_ci```
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ci![Form](figures/form.png)