js-apis-application-formExtension.md 8.7 KB
Newer Older
1 2
# FormExtension

Y
yuyaozhi 已提交
3 4
FormExtension模块提供了FormExtension卡片扩展相关接口。

Y
yuyaozhi 已提交
5
> **说明:**
Y
formapi  
yanwenhao 已提交
6 7
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
Z
zhongjianfei 已提交
8
> 从API version 9 开始不再维护,建议使用[FormExtensionAbility](js-apis-app-form-formExtensionAbility.md)替代。
9
> 本模块接口仅可在Stage模型下使用。
10 11 12

## 导入模块

M
m00512953 已提交
13
```ts
14 15 16 17 18
import FormExtension from '@ohos.application.FormExtension';
```

## 属性

19 20
**系统能力**:SystemCapability.Ability.Form

D
donglin 已提交
21
| 名称    | 类型                                                | 可读 | 可写 | 说明                                                |
22
| ------- | ------------------------------------------------------- | ---- | ---- | --------------------------------------------------- |
M
m00512953 已提交
23
| context | [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) | 是   | 否   | FormExtension的上下文环境,继承自ExtensionContext。 |
24 25 26 27 28 29 30

## onCreate

onCreate(want: Want): formBindingData.FormBindingData

卡片提供方接收创建卡片的通知接口。

Y
yuyaozhi 已提交
31 32 33
**系统能力**:SystemCapability.Ability.Form

**参数:**
34

Y
formapi  
yanwenhao 已提交
35 36
| 参数名 | 类型                                   | 必填 | 说明                                                         |
| ------ | -------------------------------------- | ---- | ------------------------------------------------------------ |
M
m00512953 已提交
37
| want   | [Want](js-apis-application-want.md) | 是   | 当前Extension相关的Want类型信息,包括卡片ID、卡片名称、卡片样式等。这些卡片信息必须作为持久数据进行管理,以便后续更新和删除卡片。 |
38

Y
yuyaozhi 已提交
39
**返回值:**
40

Y
formapi  
yanwenhao 已提交
41 42
| 类型                                                         | 说明                                                        |
| ------------------------------------------------------------ | ----------------------------------------------------------- |
M
m00512953 已提交
43
| [formBindingData.FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | formBindingData.FormBindingData对象,卡片要显示的数据。 |
44

Y
yuyaozhi 已提交
45
**示例:**
46

M
m00512953 已提交
47
```ts
Y
formapi  
yanwenhao 已提交
48 49 50 51 52 53 54 55 56 57
import formBindingData from '@ohos.application.formBindingData'
export default class MyFormExtension extends FormExtension {
  onCreate(want) {
    console.log('FormExtension onCreate, want:' + want.abilityName);
    let dataObj1 = {
      temperature:"11c",
      "time":"11:00"
    };
    let obj1 = formBindingData.createFormBindingData(dataObj1);
    return obj1;
58
  }
Y
formapi  
yanwenhao 已提交
59 60
}
```
61

Y
yuyaozhi 已提交
62
## FormExtension.onCastToNormal
63 64 65 66 67

onCastToNormal(formId: string): void

卡片提供方接收临时卡片转常态卡片的通知接口。

Y
yuyaozhi 已提交
68 69 70
**系统能力**:SystemCapability.Ability.Form

**参数:**
71

Y
formapi  
yanwenhao 已提交
72 73 74
| 参数名 | 类型   | 必填 | 说明                     |
| ------ | ------ | ---- | ------------------------ |
| formId | string | 是   | 请求转换为常态的卡片标识。 |
75

Y
yuyaozhi 已提交
76
**示例:**
77

M
m00512953 已提交
78
```ts
Y
formapi  
yanwenhao 已提交
79 80 81
export default class MyFormExtension extends FormExtension {
  onCastToNormal(formId) {
    console.log('FormExtension onCastToNormal, formId:' + formId);
82
  }
Y
formapi  
yanwenhao 已提交
83 84
}
```
85

Y
yuyaozhi 已提交
86
## FormExtension.onUpdate
87 88 89

onUpdate(formId: string): void

M
m00512953 已提交
90
卡片提供方接收更新卡片的通知接口。获取最新数据后调用[FormExtensionContext](js-apis-inner-application-formExtensionContext.md)的updateForm接口刷新卡片数据。
91

Y
yuyaozhi 已提交
92 93 94
**系统能力**:SystemCapability.Ability.Form

**参数:**
95

Y
formapi  
yanwenhao 已提交
96 97 98
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| formId | string | 是   | 请求更新的卡片ID。 |
99

Y
yuyaozhi 已提交
100
**示例:**
101

M
m00512953 已提交
102
```ts
Y
formapi  
yanwenhao 已提交
103 104 105 106 107 108 109 110 111 112 113 114
import formBindingData from '@ohos.application.formBindingData'
export default class MyFormExtension extends FormExtension {
  onUpdate(formId) {
    console.log('FormExtension onUpdate, formId:' + formId);
    let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});
    this.context.updateForm(formId, obj2).then((data)=>{
      console.log('FormExtension context updateForm, data:' + data);
    }).catch((error) => {
      console.error('Operation updateForm failed. Cause: ' + error);});
    }
}
```
115

Y
yuyaozhi 已提交
116
## FormExtension.onVisibilityChange
117 118 119 120 121

onVisibilityChange(newStatus: { [key: string]: number }): void

卡片提供方接收修改可见性的通知接口。

Y
yuyaozhi 已提交
122 123 124
**系统能力**:SystemCapability.Ability.Form

**参数:**
125

Y
formapi  
yanwenhao 已提交
126 127 128
| 参数名    | 类型                      | 必填 | 说明                         |
| --------- | ------------------------- | ---- | ---------------------------- |
| newStatus | { [key: string]: number } | 是   | 请求修改的卡片ID和可见状态。 |
129

Y
yuyaozhi 已提交
130
**示例:**
131

M
m00512953 已提交
132
```ts
Y
formapi  
yanwenhao 已提交
133 134 135 136 137 138 139 140 141 142 143 144 145
import formBindingData from '@ohos.application.formBindingData'
export default class MyFormExtension extends FormExtension {
  onVisibilityChange(newStatus) {
  console.log('FormExtension onVisibilityChange, newStatus:' + newStatus);
  let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"});

  for (let key in newStatus) {
    console.log('FormExtension onVisibilityChange, key:' + key + ", value=" + newStatus[key]);
    this.context.updateForm(key, obj2).then((data)=>{
        console.log('FormExtension context updateForm, data:' + data);
    }).catch((error) => {
        console.error('Operation updateForm failed. Cause: ' + error);});
    }
146
  }
Y
formapi  
yanwenhao 已提交
147 148
}
```
149

Y
yuyaozhi 已提交
150
## FormExtension.onEvent
151 152 153 154 155

onEvent(formId: string, message: string): void

卡片提供方接收处理卡片事件的通知接口。

Y
yuyaozhi 已提交
156 157 158
**系统能力**:SystemCapability.Ability.Form

**参数:**
159

Y
formapi  
yanwenhao 已提交
160 161 162 163
| 参数名  | 类型   | 必填 | 说明                   |
| ------- | ------ | ---- | ---------------------- |
| formId  | string | 是   | 请求触发事件的卡片标识。 |
| message | string | 是   | 事件消息。             |
164

Y
yuyaozhi 已提交
165
**示例:**
166

M
m00512953 已提交
167
```ts
Y
formapi  
yanwenhao 已提交
168 169 170
export default class MyFormExtension extends FormExtension {
  onEvent(formId, message) {
    console.log('FormExtension onEvent, formId:' + formId + ", message:" + message);
171
  }
Y
formapi  
yanwenhao 已提交
172 173
}
```
174

Y
yuyaozhi 已提交
175
## FormExtension.onDestroy
176 177 178 179 180

onDestroy(formId: string): void

卡片提供方接收销毁卡片的通知接口。

Y
yuyaozhi 已提交
181 182 183
**系统能力**:SystemCapability.Ability.Form

**参数:**
184

Y
formapi  
yanwenhao 已提交
185 186 187
| 参数名 | 类型   | 必填 | 说明               |
| ------ | ------ | ---- | ------------------ |
| formId | string | 是   | 请求销毁的卡片标识。 |
188

Y
yuyaozhi 已提交
189
**示例:**
190

M
m00512953 已提交
191
```ts
Y
formapi  
yanwenhao 已提交
192 193 194
export default class MyFormExtension extends FormExtension {
  onDestroy(formId) {
    console.log('FormExtension onDestroy, formId:' + formId);
195
  }
Y
formapi  
yanwenhao 已提交
196 197
}
```
198 199 200 201 202 203 204 205 206 207 208

## FormExtension.onConfigurationUpdated

onConfigurationUpdated(config: Configuration): void;

当系统配置更新时调用。

**系统能力**:SystemCapability.Ability.Form

**参数:**

Y
formapi  
yanwenhao 已提交
209 210
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
M
m00512953 已提交
211
| config | [Configuration](js-apis-application-configuration.md) | 是 | 表示需要更新的配置信息。 |
212 213

**示例:**
Y
formapi  
yanwenhao 已提交
214

M
m00512953 已提交
215
```ts
Y
formapi  
yanwenhao 已提交
216 217 218
class MyFormExtension extends FormExtension {
  onConfigurationUpdated(config) {
    console.log('onConfigurationUpdated, config:' + JSON.stringify(config));
219
  }
Y
formapi  
yanwenhao 已提交
220 221
}
```
222

223
## FormExtension.onAcquireFormState
224 225 226

onAcquireFormState?(want: Want): formInfo.FormState;

Y
yuyaozhi 已提交
227
卡片提供方接收查询卡片状态通知接口。默认返回卡片初始状态。
228 229 230 231 232

**系统能力**:SystemCapability.Ability.Form

**参数:**

Y
formapi  
yanwenhao 已提交
233 234
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
D
merge  
donglin 已提交
235
| want | [Want](js-apis-application-want.md) | 是 | want表示获取卡片状态的描述。描述包括包名称、能力名称、模块名称、卡片名和卡片维度。 |
236 237

**示例:**
Y
formapi  
yanwenhao 已提交
238

M
m00512953 已提交
239
```ts
Y
formapi  
yanwenhao 已提交
240 241 242 243 244
import formInfo from '@ohos.application.formInfo'
class MyFormExtension extends FormExtension {
  onAcquireFormState(want) {
    console.log('FormExtension onAcquireFormState, want:' + want);
    return formInfo.FormState.UNKNOWN;
245
  }
Y
formapi  
yanwenhao 已提交
246 247
}
```
X
xuchenghua09 已提交
248 249 250 251 252 253 254

## FormExtension.onShare

onShare?(formId: string): {[key: string]: any};

卡片提供方接收卡片分享的通知接口。

Y
formapi  
yanwenhao 已提交
255
**系统接口**: 此接口为系统接口。
X
xuchenghua09 已提交
256

X
xuchenghua09 已提交
257
**系统能力**:SystemCapability.Ability.Form
X
xuchenghua09 已提交
258

X
xuchenghua09 已提交
259 260
**参数:**

Y
formapi  
yanwenhao 已提交
261 262 263
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| formId | string | 是   | 卡片标识。 |
X
xuchenghua09 已提交
264 265 266

**返回值:**

Y
formapi  
yanwenhao 已提交
267 268 269
| 类型                                                         | 说明                                                        |
| ------------------------------------------------------------ | ----------------------------------------------------------- |
| {[key: string]: any} | 卡片要分享的数据,由开发者自行决定传入的键值对。 |
X
xuchenghua09 已提交
270 271

**示例:**
Y
formapi  
yanwenhao 已提交
272

M
m00512953 已提交
273
```ts
Y
formapi  
yanwenhao 已提交
274 275 276 277 278 279 280 281
class MyFormExtension extends FormExtension {
  onShare(formId) {
    console.log('FormExtension onShare, formId:' + formId);
    let wantParams = {
      "temperature":"20",
      "time":"2022-8-8 09:59",
    };
    return wantParams;
X
xuchenghua09 已提交
282
  }
Y
formapi  
yanwenhao 已提交
283 284
}
```