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_ci无 23e41f4b71Sopenharmony_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?: number,<br/>height?: 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: Callback[\<FormCallbackInfo>](#formcallbackinfo12)): 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 | { errcode: number, msg: string } | 是 | errcode: 错误码。<br/>msg: 错误信息。 | 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci### onRouter 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_cionRouter(callback: (info: any) => 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: Callback[\<FormCallbackInfo>](#formcallbackinfo12)): 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