• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
1819
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  ```