js-apis-app-form-formProvider.md 23.8 KB
Newer Older
Y
yangzk 已提交
1
# @ohos.app.form.formProvider (formProvider)
Y
yanwenhao 已提交
2

Y
yangzk 已提交
3
FormProvider模块提供了卡片提供方相关接口的能力,开发者在开发卡片时,可通过该模块提供接口实现更新卡片、设置卡片更新时间、获取卡片信息、请求发布卡片等。
Y
yanwenhao 已提交
4 5 6 7 8 9

> **说明:**
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

M
m00512953 已提交
10
```ts
Y
yanwenhao 已提交
11
import formProvider from '@ohos.app.form.formProvider';
X
xuzhihao 已提交
12
import Base from '@ohos.base';
Y
yanwenhao 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
```

## setFormNextRefreshTime

setFormNextRefreshTime(formId: string, minute: number, callback: AsyncCallback<void>): void

设置指定卡片的下一次更新时间,使用callback异步回调。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明                                   |
| ------ | ------ | ---- | ------------------------------------- |
| formId | string | 是   | 卡片标识。                               |
| minute | number | 是   | 指定多久之后更新,单位分钟,大于等于5。     |
| callback | AsyncCallback<void> | 是 | 回调函数。 |

31 32
**错误码:**

Y
yanwenhao 已提交
33 34
| 错误码ID | 错误信息 |
| -------- | -------- |
35 36 37 38 39 40 41 42
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500060 | A service connection error happened, please try again later. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
| 16501001 | The ID of the form to be operated does not exist. |
| 16501002 | The number of forms exceeds upper bound. |
| 16501003 | The form can not be operated by the current application. |
43 44

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
45 46 47

**示例:**

M
m00512953 已提交
48
```ts
X
xuzhihao 已提交
49
let formId: string = '12400633174999288';
Y
yanwenhao 已提交
50
try {
X
xuzhihao 已提交
51
  formProvider.setFormNextRefreshTime(formId, 5, (error: Base.BusinessError) => {
Y
yanwenhao 已提交
52
    if (error) {
M
mingxihua 已提交
53
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
54
      return;
Y
yanwenhao 已提交
55
    }
Y
yangzk 已提交
56
    console.log(`formProvider setFormNextRefreshTime success`);
Y
yanwenhao 已提交
57 58
  });
} catch (error) {
M
mingxihua 已提交
59
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
}
```

## setFormNextRefreshTime

setFormNextRefreshTime(formId: string, minute: number): Promise<void>

设置指定卡片的下一次更新时间,使用Promise异步回调。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明                                   |
| ------ | ------ | ---- | ------------------------------------- |
| formId | string | 是   | 卡片标识。                               |
| minute | number | 是   | 指定多久之后更新,单位分钟,大于等于5。     |

**返回值:**

| 类型          | 说明                              |
| ------------- | ---------------------------------- |
| Promise\<void> | 无返回结果的Promise对象。      |

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
88 89 90 91 92 93 94 95
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500060 | A service connection error happened, please try again later. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
| 16501001 | The ID of the form to be operated does not exist. |
| 16501002 | The number of forms exceeds upper bound. |
| 16501003 | The form can not be operated by the current application. |
96 97

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
98 99 100

**示例:**

M
m00512953 已提交
101
```ts
X
xuzhihao 已提交
102
let formId: string = '12400633174999288';
Y
yanwenhao 已提交
103 104
try {
  formProvider.setFormNextRefreshTime(formId, 5).then(() => {
Y
yangzk 已提交
105
    console.log(`formProvider setFormNextRefreshTime success`);
X
xuzhihao 已提交
106
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
107
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
108 109
  });
} catch (error) {
M
mingxihua 已提交
110
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
}
```

## updateForm

updateForm(formId: string, formBindingData: formBindingData.FormBindingData,callback: AsyncCallback&lt;void&gt;): void

更新指定的卡片,使用callback异步回调。

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

**参数:**

| 参数名 | 类型                                                                    | 必填 | 说明             |
| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
| formId | string                                                                 | 是   | 请求更新的卡片标识。 |
Z
zhongjianfei 已提交
127
| formBindingData.FormBindingData | [FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 是   | 用于更新的数据。    |
Y
yanwenhao 已提交
128 129 130 131 132 133
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
134 135 136 137 138 139 140
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500060 | A service connection error happened, please try again later. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
| 16501001 | The ID of the form to be operated does not exist. |
| 16501003 | The form can not be operated by the current application. |
141 142

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
143 144 145

**示例:**

M
m00512953 已提交
146
```ts
147
import formBindingData from '@ohos.app.form.formBindingData';
Y
yangzk 已提交
148

X
xuzhihao 已提交
149
let formId: string = '12400633174999288';
Y
yanwenhao 已提交
150
try {
X
xuzhihao 已提交
151 152 153 154 155 156 157 158 159 160
  class createFormBindingDataParamType {
    temperature: string
    time: string
  }
  let createFormBindingDataParam: createFormBindingDataParamType = {
    temperature:'22c',
    time:'22:00'
  };
  let obj = formBindingData.createFormBindingData(createFormBindingDataParam);
  formProvider.updateForm(formId, obj, (error: Base.BusinessError) => {
Y
yanwenhao 已提交
161
    if (error) {
M
mingxihua 已提交
162
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
163
      return;
Y
yanwenhao 已提交
164
    }
Y
yangzk 已提交
165
    console.log(`formProvider updateForm success`);
Y
yanwenhao 已提交
166 167
  });
} catch (error) {
M
mingxihua 已提交
168
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
}
```

## updateForm

updateForm(formId: string, formBindingData: formBindingData.FormBindingData): Promise&lt;void&gt;

更新指定的卡片,使用Promise异步回调。

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

**参数:**

| 参数名 | 类型                                                                    | 必填 | 说明             |
| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
| formId | string                                                                 | 是   | 请求更新的卡片标识。 |
Z
zhongjianfei 已提交
185
| formBindingData.FormBindingData | [FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 是   | 用于更新的数据。    |
Y
yanwenhao 已提交
186 187 188 189 190 191 192 193 194 195 196

**返回值:**

| 类型           | 说明                                |
| -------------- | ----------------------------------- |
| Promise\<void> | 无返回结果的Promise对象。 |

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
197 198 199 200 201 202 203
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500060 | A service connection error happened, please try again later. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
| 16501001 | The ID of the form to be operated does not exist. |
| 16501003 | The form can not be operated by the current application. |
204 205

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
206 207 208

**示例:**

M
m00512953 已提交
209
```ts
210
import formBindingData from '@ohos.app.form.formBindingData';
Y
yangzk 已提交
211

X
xuzhihao 已提交
212 213 214 215 216 217 218 219 220 221
let formId: string = '12400633174999288';
class createFormBindingDataParamType {
    temperature: string
    time: string
  }
  let createFormBindingDataParam: createFormBindingDataParamType = {
    temperature:'22c',
    time:'22:00'
  };
let obj = formBindingData.createFormBindingData(createFormBindingDataParam);
Y
yanwenhao 已提交
222 223
try {
  formProvider.updateForm(formId, obj).then(() => {
Y
yangzk 已提交
224
    console.log(`formProvider updateForm success`);
X
xuzhihao 已提交
225
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
226
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
227 228
  });
} catch (error) {
M
mingxihua 已提交
229
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
}
```

## getFormsInfo

getFormsInfo(callback: AsyncCallback&lt;Array&lt;formInfo.FormInfo&gt;&gt;): void

获取设备上当前应用程序的卡片信息,使用callback异步回调。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明    |
| ------ | ------ | ---- | ------- |
Y
yangzk 已提交
245
| callback | AsyncCallback&lt;Array&lt;[formInfo.FormInfo](js-apis-app-form-formInfo.md)&gt;&gt; | 是 | 回调函数。返回查询到的卡片信息。 |
Y
yanwenhao 已提交
246 247 248 249

**错误码:**
| 错误码ID | 错误信息 |
| -------- | -------- |
250 251 252 253
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
254 255

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
256 257 258 259


**示例:**

M
m00512953 已提交
260
```ts
Y
yanwenhao 已提交
261 262 263
try {
  formProvider.getFormsInfo((error, data) => {
    if (error) {
M
mingxihua 已提交
264
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
265
      return;
Y
yanwenhao 已提交
266
    }
X
xuzhihao 已提交
267
    console.log(`formProvider getFormsInfo, data: ${JSON.stringify(data)}`);
Y
yanwenhao 已提交
268 269
  });
} catch (error) {
M
mingxihua 已提交
270
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
271 272 273 274 275 276 277 278 279 280 281 282 283 284
}
```
## getFormsInfo

getFormsInfo(filter: formInfo.FormInfoFilter, callback: AsyncCallback&lt;Array&lt;formInfo.FormInfo&gt;&gt;): void

获取设备上当前应用程序的卡片信息,并筛选符合条件的信息,使用callback异步回调。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明    |
| ------ | ------ | ---- | ------- |
Z
zhongjianfei 已提交
285
| filter | [formInfo.FormInfoFilter](js-apis-app-form-formInfo.md#forminfofilter) | 是 | 卡片信息过滤器。 |
Y
yangzk 已提交
286
| callback | AsyncCallback&lt;Array&lt;[formInfo.FormInfo](js-apis-app-form-formInfo.md)&gt;&gt; | 是 | 回调函数。返回查询到符合条件的卡片信息。 |
Y
yanwenhao 已提交
287 288 289 290 291

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
292 293 294 295
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
296 297

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
298 299 300

**示例:**

M
m00512953 已提交
301
```ts
Y
yangzk 已提交
302 303 304 305
import formInfo from '@ohos.app.form.formInfo';

const filter: formInfo.FormInfoFilter = {
  // get info of forms belong to module entry.
M
mingxihua 已提交
306
  moduleName: 'entry'
Y
yanwenhao 已提交
307 308 309 310
};
try {
  formProvider.getFormsInfo(filter, (error, data) => {
    if (error) {
M
mingxihua 已提交
311
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
312
      return;
Y
yanwenhao 已提交
313
    }
X
xuzhihao 已提交
314
    console.log(`formProvider getFormsInfo, data: ${JSON.stringify(data)}`);
Y
yanwenhao 已提交
315
  });
Y
yangzk 已提交
316
} catch (error) {
M
mingxihua 已提交
317
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
}
```

## getFormsInfo

getFormsInfo(filter?: formInfo.FormInfoFilter): Promise&lt;Array&lt;formInfo.FormInfo&gt;&gt;

获取设备上当前应用程序的卡片信息,使用Promise异步回调。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明    |
| ------ | ------ | ---- | ------- |
W
form  
wangkailong 已提交
333
| filter | [formInfo.FormInfoFilter](js-apis-app-form-formInfo.md#forminfofilter) | 否 | 卡片信息过滤器, 默认为空,不进行过滤。 |
Y
yanwenhao 已提交
334 335 336 337 338

**返回值:**

| 类型          | 说明                                |
| :------------ | :---------------------------------- |
Y
yangzk 已提交
339
| Promise&lt;Array&lt;[formInfo.FormInfo](js-apis-app-form-formInfo.md)&gt;&gt; | Promise对象。返回查询到符合条件的卡片信息。 |
Y
yanwenhao 已提交
340 341 342 343 344

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
345 346 347 348
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
349 350

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
351 352 353

**示例:**

M
m00512953 已提交
354
```ts
Y
yangzk 已提交
355 356 357 358
import formInfo from '@ohos.app.form.formInfo';

const filter: formInfo.FormInfoFilter = {
  // get info of forms belong to module entry.
M
mingxihua 已提交
359
  moduleName: 'entry'
Y
yanwenhao 已提交
360 361
};
try {
X
xuzhihao 已提交
362 363 364
  formProvider.getFormsInfo(filter).then((data: formInfo.FormInfo[]) => {
    console.log(`formProvider getFormsInfo, data: ${JSON.stringify(data)}`);
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
365
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
366 367
  });
} catch (error) {
M
mingxihua 已提交
368
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
}
```

## requestPublishForm

requestPublishForm(want: Want, formBindingData: formBindingData.FormBindingData, callback: AsyncCallback\<string>): void

请求发布一张卡片到使用方。使用方通常为桌面。

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

**系统接口**: 此接口为系统接口。

**参数:**

| 参数名 | 类型                                                                    | 必填 | 说明             |
| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
M
mingxihua 已提交
386
| want | [Want](js-apis-application-want.md)                           | 是   | 发布请求。需包含以下字段。<br>abilityName: 目标卡片ability<br>parameters:<br>'ohos.extra.param.key.form_dimension'<br>'ohos.extra.param.key.form_name'<br>'ohos.extra.param.key.module_name' |
Y
yangzk 已提交
387
| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 是   | 创建卡片的数据。 |
Y
yanwenhao 已提交
388 389
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。返回卡片标识。 |

390 391
**错误码:**

Y
yanwenhao 已提交
392 393
| 错误码ID | 错误信息 |
| -------- | -------- |
394 395 396 397 398
| 202 | The application is not a system application. |
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
399 400

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
401 402 403

**示例:**

M
m00512953 已提交
404
```ts
405
import formBindingData from '@ohos.app.form.formBindingData';
X
xuzhihao 已提交
406
import Want from '@ohos.app.ability.Want';
Y
yangzk 已提交
407

X
xuzhihao 已提交
408
let want: Want = {
M
mingxihua 已提交
409
  abilityName: 'FormAbility',
Y
yanwenhao 已提交
410
  parameters: {
M
mingxihua 已提交
411 412 413
    'ohos.extra.param.key.form_dimension': 2,
    'ohos.extra.param.key.form_name': 'widget',
    'ohos.extra.param.key.module_name': 'entry'
Y
yanwenhao 已提交
414 415 416
  }
};
try {
X
xuzhihao 已提交
417 418 419 420 421 422 423 424 425 426
  class createFormBindingDataParamType {
    temperature: string
    time: string
  }
  let createFormBindingDataParam: createFormBindingDataParamType = {
    temperature:'22c',
    time:'22:00'
  };
  let obj = formBindingData.createFormBindingData(createFormBindingDataParam);
  formProvider.requestPublishForm(want, obj, (error: Base.BusinessError, data: string) => {
Y
yanwenhao 已提交
427
    if (error) {
M
mingxihua 已提交
428
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
429
      return;
Y
yanwenhao 已提交
430
    }
Y
yangzk 已提交
431
    console.log('formProvider requestPublishForm, form ID is: ${JSON.stringify(data)}');
Y
yanwenhao 已提交
432 433
  });
} catch (error) {
M
mingxihua 已提交
434
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451
}
```

## requestPublishForm

requestPublishForm(want: Want, callback: AsyncCallback&lt;string&gt;): void

请求发布一张卡片到使用方。使用方通常为桌面。

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

**系统接口**: 此接口为系统接口。

**参数:**

| 参数名   | 类型                                | 必填 | 说明                                                         |
| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
M
mingxihua 已提交
452
| want     | [Want](js-apis-application-want.md) | 是   | 发布请求。需包含以下字段。<br>abilityName: 目标卡片ability<br>parameters:<br>'ohos.extra.param.key.form_dimension'<br>'ohos.extra.param.key.form_name'<br>'ohos.extra.param.key.module_name' |
Y
yanwenhao 已提交
453 454
| callback | AsyncCallback&lt;string&gt;         | 是   |  回调函数。返回卡片标识。 |

455 456
**错误码:**

Y
yanwenhao 已提交
457 458
| 错误码ID | 错误信息 |
| -------- | -------- |
459 460 461 462 463
| 202 | The application is not a system application. |
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
464 465

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
466 467 468

**示例:**

M
m00512953 已提交
469
```ts
X
xuzhihao 已提交
470 471 472
import Want from '@ohos.app.ability.Want';

let want: Want = {
M
mingxihua 已提交
473
  abilityName: 'FormAbility',
Y
yanwenhao 已提交
474
  parameters: {
M
mingxihua 已提交
475 476 477
    'ohos.extra.param.key.form_dimension': 2,
    'ohos.extra.param.key.form_name': 'widget',
    'ohos.extra.param.key.module_name': 'entry'
Y
yanwenhao 已提交
478 479 480
  }
};
try {
X
xuzhihao 已提交
481
  formProvider.requestPublishForm(want, (error: Base.BusinessError, data: string) => {
Y
yanwenhao 已提交
482
    if (error) {
M
mingxihua 已提交
483
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
484
      return;
Y
yanwenhao 已提交
485
    }
X
xuzhihao 已提交
486
    console.log(`formProvider requestPublishForm, form ID is: ${JSON.stringify(data)}`);
Y
yanwenhao 已提交
487 488
  });
} catch (error) {
M
mingxihua 已提交
489
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506
}
```

## requestPublishForm

requestPublishForm(want: Want, formBindingData?: formBindingData.FormBindingData): Promise&lt;string&gt;

请求发布一张卡片到使用方。使用方通常为桌面。

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

**系统接口**: 此接口为系统接口。

**参数:**

| 参数名          | 类型                                                         | 必填 | 说明                                                         |
| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
M
mingxihua 已提交
507
| want            | [Want](js-apis-application-want.md)                          | 是   | 发布请求。需包含以下字段。<br>abilityName: 目标卡片ability<br>parameters:<br>'ohos.extra.param.key.form_dimension'<br>'ohos.extra.param.key.form_name'<br>'ohos.extra.param.key.module_name' |
W
form  
wangkailong 已提交
508
| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 否   | 创建卡片的数据,默认为空,不提供创建卡片数据。                                      |
Y
yanwenhao 已提交
509 510 511 512 513 514 515

**返回值:**

| 类型          | 说明                                |
| :------------ | :---------------------------------- |
| Promise&lt;string&gt; | Promise对象。返回卡片标识。 |

516 517
**错误码:**

Y
yanwenhao 已提交
518 519
| 错误码ID | 错误信息 |
| -------- | -------- |
520 521 522 523 524
| 202 | The application is not a system application. |
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16500100 | Failed to obtain the configuration information. |
| 16501000 | An internal functional error occurred. |
525 526

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
Y
yanwenhao 已提交
527 528 529

**示例:**

M
m00512953 已提交
530
```ts
X
xuzhihao 已提交
531 532 533
import Want from '@ohos.app.ability.Want';

let want: Want = {
M
mingxihua 已提交
534
  abilityName: 'FormAbility',
Y
yanwenhao 已提交
535
  parameters: {
M
mingxihua 已提交
536 537 538
    'ohos.extra.param.key.form_dimension': 2,
    'ohos.extra.param.key.form_name': 'widget',
    'ohos.extra.param.key.module_name': 'entry'
Y
yanwenhao 已提交
539 540 541
  }
};
try {
X
xuzhihao 已提交
542 543 544
  formProvider.requestPublishForm(want).then((data: string) => {
    console.log(`formProvider requestPublishForm success, form ID is : ${JSON.stringify(data)}`);
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
545
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
546 547
  });
} catch (error) {
M
mingxihua 已提交
548
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567
}
```

## isRequestPublishFormSupported

isRequestPublishFormSupported(callback: AsyncCallback&lt;boolean&gt;): void

查询是否支持发布一张卡片到使用方。

**系统接口**: 此接口为系统接口。

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

**参数:**

| 参数名 | 类型    | 必填 | 说明    |
| ------ | ------ | ---- | ------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 回调函数。返回是否支持发布一张卡片到使用方。|

568 569 570 571
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
572
| 202 | If the application is not a system application. |
573 574 575
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
576 577

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
578

Y
yanwenhao 已提交
579 580
**示例:**

M
m00512953 已提交
581
```ts
X
xuzhihao 已提交
582 583
import Want from '@ohos.app.ability.Want';

Y
yanwenhao 已提交
584
try {
X
xuzhihao 已提交
585
  formProvider.isRequestPublishFormSupported((error: Base.BusinessError, isSupported: boolean) => {
Y
yangzk 已提交
586
    if (error) {
M
mingxihua 已提交
587
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
588 589
    } else {
      if (isSupported) {
X
xuzhihao 已提交
590
        let want: Want = {
M
mingxihua 已提交
591
          abilityName: 'FormAbility',
Y
yangzk 已提交
592
          parameters: {
M
mingxihua 已提交
593 594 595
            'ohos.extra.param.key.form_dimension': 2,
            'ohos.extra.param.key.form_name': 'widget',
            'ohos.extra.param.key.module_name': 'entry'
Y
yanwenhao 已提交
596
          }
Y
yangzk 已提交
597 598
        };
        try {
X
xuzhihao 已提交
599
          formProvider.requestPublishForm(want, (error: Base.BusinessError, data: string) => {
Y
yangzk 已提交
600
            if (error) {
M
mingxihua 已提交
601
              console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
602
              return;
Y
yangzk 已提交
603
            }
X
xuzhihao 已提交
604
            console.log(`formProvider requestPublishForm, form ID is: ${JSON.stringify(data)}`);
Y
yangzk 已提交
605 606
          });
        } catch (error) {
M
mingxihua 已提交
607
          console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
608
        }
Y
yanwenhao 已提交
609 610
      }
    }
Y
yangzk 已提交
611
  });
Y
yanwenhao 已提交
612
} catch (error) {
M
mingxihua 已提交
613
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632
}
```

## isRequestPublishFormSupported

isRequestPublishFormSupported(): Promise&lt;boolean&gt;

查询是否支持发布一张卡片到使用方。

**系统接口**: 此接口为系统接口。

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

**返回值:**

| 类型          | 说明                                |
| :------------ | :---------------------------------- |
| Promise&lt;boolean&gt; | Promise对象。返回是否支持发布一张卡片到使用方。 |

633 634 635 636
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
637
| 202 | If the application is not a system application. |
638 639
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
640 641

以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)
642

Y
yanwenhao 已提交
643 644
**示例:**

M
m00512953 已提交
645
```ts
X
xuzhihao 已提交
646 647
import Want from '@ohos.app.ability.Want';

Y
yanwenhao 已提交
648
try {
X
xuzhihao 已提交
649
  formProvider.isRequestPublishFormSupported().then((isSupported: boolean) => {
Y
yanwenhao 已提交
650
    if (isSupported) {
X
xuzhihao 已提交
651
      let want: Want = {
M
mingxihua 已提交
652
        abilityName: 'FormAbility',
Y
yangzk 已提交
653
        parameters: {
M
mingxihua 已提交
654 655 656
          'ohos.extra.param.key.form_dimension': 2,
          'ohos.extra.param.key.form_name': 'widget',
          'ohos.extra.param.key.module_name': 'entry'
Y
yangzk 已提交
657
        }
Y
yanwenhao 已提交
658 659
      };
      try {
X
xuzhihao 已提交
660 661 662
        formProvider.requestPublishForm(want).then((data: string) => {
          console.log(`formProvider requestPublishForm success, form ID is : ${JSON.stringify(data)}`);
        }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
663
          console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
664 665
        });
      } catch (error) {
M
mingxihua 已提交
666
        console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
667 668
      }
    }
X
xuzhihao 已提交
669
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
670
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
671 672
  });
} catch (error) {
M
mingxihua 已提交
673
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
674 675
}
```