1# FormExtension 2 3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 4> 5> 本模块首批接口从API version 9开始支持。API 9当前为Canary版本,仅供使用,不保证接口可稳定调用。 6 7 8提供FormExtension卡片扩展相关接口。 9 10## 导入模块 11 12``` 13import FormExtension from '@ohos.application.FormExtension'; 14``` 15 16## 权限 17 18无 19 20## 属性 21 22**系统能力**:SystemCapability.Ability.Form 23 24| 名称 | 参数类型 | 可读 | 可写 | 说明 | 25| ------- | ------------------------------------------------------- | ---- | ---- | --------------------------------------------------- | 26| context | [FormExtensionContext](js-apis-formextensioncontext.md) | 是 | 否 | FormExtension的上下文环境,继承自ExtensionContext。 | 27 28## onCreate 29 30onCreate(want: Want): formBindingData.FormBindingData 31 32卡片提供方接收创建卡片的通知接口。 33 34**系统能力**:SystemCapability.Ability.Form 35 36**参数:** 37 38 | 参数名 | 类型 | 必填 | 说明 | 39 | ------ | -------------------------------------- | ---- | ------------------------------------------------------------ | 40 | want | [Want](js-apis-featureAbility.md#want) | 是 | 当前Extension相关的Want类型信息,包括卡片ID、卡片名称、卡片样式等。这些卡片信息必须作为持久数据进行管理,以便后续更新和删除卡片。 | 41 42**返回值:** 43 44 | 类型 | 说明 | 45 | ------------------------------------------------------------ | ----------------------------------------------------------- | 46 | [formBindingData.FormBindingData](js-apis-formbindingdata.md#formbindingdata) | 一个formBindingData.FormBindingData对象,卡片要显示的数据。 | 47 48**示例:** 49 50 ```js 51 export default class MyFormExtension extends FormExtension { 52 onCreate(want) { 53 console.log('FormExtension onCreate, want:' + want.abilityName); 54 let dataObj1 = { 55 temperature:"11c", 56 "time":"11:00" 57 }; 58 let obj1 = formBindingData.createFormBindingData(dataObj1); 59 return obj1; 60 } 61 } 62 ``` 63 64## FormExtension.onCastToNormal 65 66onCastToNormal(formId: string): void 67 68卡片提供方接收临时卡片转常态卡片的通知接口。 69 70**系统能力**:SystemCapability.Ability.Form 71 72**参数:** 73 74 | 参数名 | 类型 | 必填 | 说明 | 75 | ------ | ------ | ---- | ------------------------ | 76 | formId | string | 是 | 请求转换为常态的卡片ID。 | 77 78**示例:** 79 80 ``` 81 export default class MyFormExtension extends FormExtension { 82 onCastToNormal(formId) { 83 console.log('FormExtension onCastToNormal, formId:' + formId); 84 } 85 } 86 ``` 87 88## FormExtension.onUpdate 89 90onUpdate(formId: string): void 91 92卡片提供方接收更新卡片的通知接口。获取最新数据后调用[FormExtensionContext](js-apis-formextensioncontext.md)的updateForm接口刷新卡片数据。 93 94**系统能力**:SystemCapability.Ability.Form 95 96**参数:** 97 98 | 参数名 | 类型 | 必填 | 说明 | 99 | ------ | ------ | ---- | ------------------ | 100 | formId | string | 是 | 请求更新的卡片ID。 | 101 102**示例:** 103 104 ```js 105 export default class MyFormExtension extends FormExtension { 106 onUpdate(formId) { 107 console.log('FormExtension onUpdate, formId:' + formId); 108 let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); 109 this.context.updateForm(formId, obj2) 110 .then((data)=>{ 111 console.log('FormExtension context updateForm, data:' + data); 112 }).catch((error) => { 113 console.error('Operation updateForm failed. Cause: ' + error);}); 114 } 115 } 116 ``` 117 118## FormExtension.onVisibilityChange 119 120onVisibilityChange(newStatus: { [key: string]: number }): void 121 122卡片提供方接收修改可见性的通知接口。 123 124**系统能力**:SystemCapability.Ability.Form 125 126**参数:** 127 128 | 参数名 | 类型 | 必填 | 说明 | 129 | --------- | ------------------------- | ---- | ---------------------------- | 130 | newStatus | { [key: string]: number } | 是 | 请求修改的卡片ID和可见状态。 | 131 132**示例:** 133 134 ```js 135 export default class MyFormExtension extends FormExtension { 136 onVisibilityChange(newStatus) { 137 console.log('FormExtension onVisibilityChange, newStatus:' + newStatus); 138 let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); 139 140 for (let key in newStatus) { 141 console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]); 142 this.context.updateForm(key, obj2) 143 .then((data)=>{ 144 console.log('FormExtension context updateForm, data:' + data); 145 }).catch((error) => { 146 console.error('Operation updateForm failed. Cause: ' + error);}); 147 } 148 } 149 } 150 ``` 151 152## FormExtension.onEvent 153 154onEvent(formId: string, message: string): void 155 156卡片提供方接收处理卡片事件的通知接口。 157 158**系统能力**:SystemCapability.Ability.Form 159 160**参数:** 161 162 | 参数名 | 类型 | 必填 | 说明 | 163 | ------- | ------ | ---- | ---------------------- | 164 | formId | string | 是 | 请求触发事件的卡片ID。 | 165 | message | string | 是 | 事件消息。 | 166 167**示例:** 168 169 ```js 170 export default class MyFormExtension extends FormExtension { 171 onEvent(formId, message) { 172 console.log('FormExtension onEvent, formId:' + formId + ", message:" + message); 173 } 174 } 175 ``` 176 177## FormExtension.onDestroy 178 179onDestroy(formId: string): void 180 181卡片提供方接收销毁卡片的通知接口。 182 183**系统能力**:SystemCapability.Ability.Form 184 185**参数:** 186 187 | 参数名 | 类型 | 必填 | 说明 | 188 | ------ | ------ | ---- | ------------------ | 189 | formId | string | 是 | 请求销毁的卡片ID。 | 190 191**示例:** 192 193 ```js 194 export default class MyFormExtension extends FormExtension { 195 onDestroy(formId) { 196 console.log('FormExtension onDestroy, formId:' + formId); 197 } 198 } 199 ``` 200 201## FormExtension.onConfigurationUpdated 202 203onConfigurationUpdated(config: Configuration): void; 204 205当系统配置更新时调用。 206 207**系统能力**:SystemCapability.Ability.Form 208 209**参数:** 210 211 | 参数名 | 类型 | 必填 | 说明 | 212 | -------- | -------- | -------- | -------- | 213 | config | [Configuration](#section188911144124715) | 是 | 表示需要更新的配置信息。 | 214 215**示例:** 216 217 ```js 218 class MyFormExtension extends MyFormExtension { 219 onConfigurationUpdated(config) { 220 console.log('onConfigurationUpdated, config:' + JSON.stringify(config)); 221 } 222 } 223 ```