js-apis-app-form-formProvider.md 24.1 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 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
import formProvider from '@ohos.app.form.formProvider';
```

## setFormNextRefreshTime

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

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

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

**参数:**

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

30 31
**错误码:**

Y
yanwenhao 已提交
32 33
| 错误码ID | 错误信息 |
| -------- | -------- |
34 35 36 37 38 39 40 41
| 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. |
42 43

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

**示例:**

M
m00512953 已提交
47
```ts
Y
yuyaozhi 已提交
48 49
import Base from '@ohos.base';

X
xuzhihao 已提交
50
let formId: string = '12400633174999288';
Y
yanwenhao 已提交
51
try {
X
xuzhihao 已提交
52
  formProvider.setFormNextRefreshTime(formId, 5, (error: Base.BusinessError) => {
Y
yanwenhao 已提交
53
    if (error) {
M
mingxihua 已提交
54
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
55
      return;
Y
yanwenhao 已提交
56
    }
Y
yangzk 已提交
57
    console.log(`formProvider setFormNextRefreshTime success`);
Y
yanwenhao 已提交
58 59
  });
} catch (error) {
M
mingxihua 已提交
60
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
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 88
}
```

## setFormNextRefreshTime

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
89 90 91 92 93 94 95 96
| 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. |
97 98

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

**示例:**

M
m00512953 已提交
102
```ts
Y
yuyaozhi 已提交
103 104
import Base from '@ohos.base';

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

## updateForm

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

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

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

**参数:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
137 138 139 140 141 142 143
| 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. |
144 145

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

**示例:**

M
m00512953 已提交
149
```ts
150
import formBindingData from '@ohos.app.form.formBindingData';
Y
yuyaozhi 已提交
151
import Base from '@ohos.base';
Y
yangzk 已提交
152

X
xuzhihao 已提交
153
let formId: string = '12400633174999288';
Y
yanwenhao 已提交
154
try {
X
xuzhihao 已提交
155 156 157 158 159 160 161 162 163 164
  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 已提交
165
    if (error) {
M
mingxihua 已提交
166
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
167
      return;
Y
yanwenhao 已提交
168
    }
Y
yangzk 已提交
169
    console.log(`formProvider updateForm success`);
Y
yanwenhao 已提交
170 171
  });
} catch (error) {
M
mingxihua 已提交
172
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
}
```

## updateForm

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
201 202 203 204 205 206 207
| 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. |
208 209

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

**示例:**

M
m00512953 已提交
213
```ts
214
import formBindingData from '@ohos.app.form.formBindingData';
Y
yuyaozhi 已提交
215
import Base from '@ohos.base';
Y
yangzk 已提交
216

X
xuzhihao 已提交
217 218 219 220 221 222 223 224 225 226
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 已提交
227 228
try {
  formProvider.updateForm(formId, obj).then(() => {
Y
yangzk 已提交
229
    console.log(`formProvider updateForm success`);
X
xuzhihao 已提交
230
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
231
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
232 233
  });
} catch (error) {
M
mingxihua 已提交
234
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
}
```

## getFormsInfo

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

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

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

**参数:**

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

**错误码:**
| 错误码ID | 错误信息 |
| -------- | -------- |
255 256 257 258
| 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. |
259 260

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


**示例:**

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

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

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

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

**参数:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
297 298 299 300
| 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. |
301 302

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

**示例:**

M
m00512953 已提交
306
```ts
Y
yangzk 已提交
307 308 309 310
import formInfo from '@ohos.app.form.formInfo';

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

## getFormsInfo

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
350 351 352 353
| 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. |
354 355

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

**示例:**

M
m00512953 已提交
359
```ts
Y
yangzk 已提交
360
import formInfo from '@ohos.app.form.formInfo';
Y
yuyaozhi 已提交
361
import Base from '@ohos.base';
Y
yangzk 已提交
362 363 364

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

## requestPublishForm

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

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

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

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

**参数:**

| 参数名 | 类型                                                                    | 必填 | 说明             |
| ------ | ---------------------------------------------------------------------- | ---- | ---------------- |
M
mingxihua 已提交
392
| 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 已提交
393
| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 是   | 创建卡片的数据。 |
Y
yanwenhao 已提交
394 395
| callback | AsyncCallback&lt;string&gt; | 是 | 回调函数。返回卡片标识。 |

396 397
**错误码:**

Y
yanwenhao 已提交
398 399
| 错误码ID | 错误信息 |
| -------- | -------- |
400 401 402 403 404
| 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. |
405 406

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

**示例:**

M
m00512953 已提交
410
```ts
411
import formBindingData from '@ohos.app.form.formBindingData';
X
xuzhihao 已提交
412
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
413
import Base from '@ohos.base';
Y
yangzk 已提交
414

X
xuzhihao 已提交
415
let want: Want = {
M
mingxihua 已提交
416
  abilityName: 'FormAbility',
Y
yanwenhao 已提交
417
  parameters: {
M
mingxihua 已提交
418 419 420
    'ohos.extra.param.key.form_dimension': 2,
    'ohos.extra.param.key.form_name': 'widget',
    'ohos.extra.param.key.module_name': 'entry'
Y
yanwenhao 已提交
421 422 423
  }
};
try {
X
xuzhihao 已提交
424 425 426 427 428 429 430 431 432 433
  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 已提交
434
    if (error) {
M
mingxihua 已提交
435
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
436
      return;
Y
yanwenhao 已提交
437
    }
Y
yangzk 已提交
438
    console.log('formProvider requestPublishForm, form ID is: ${JSON.stringify(data)}');
Y
yanwenhao 已提交
439 440
  });
} catch (error) {
M
mingxihua 已提交
441
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458
}
```

## requestPublishForm

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

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

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

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

**参数:**

| 参数名   | 类型                                | 必填 | 说明                                                         |
| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
M
mingxihua 已提交
459
| 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 已提交
460 461
| callback | AsyncCallback&lt;string&gt;         | 是   |  回调函数。返回卡片标识。 |

462 463
**错误码:**

Y
yanwenhao 已提交
464 465
| 错误码ID | 错误信息 |
| -------- | -------- |
466 467 468 469 470
| 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. |
471 472

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

**示例:**

M
m00512953 已提交
476
```ts
X
xuzhihao 已提交
477
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
478
import Base from '@ohos.base';
X
xuzhihao 已提交
479 480

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

## requestPublishForm

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

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

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

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

**参数:**

| 参数名          | 类型                                                         | 必填 | 说明                                                         |
| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
M
mingxihua 已提交
515
| 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 已提交
516
| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 否   | 创建卡片的数据,默认为空,不提供创建卡片数据。                                      |
Y
yanwenhao 已提交
517 518 519 520 521 522 523

**返回值:**

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

524 525
**错误码:**

Y
yanwenhao 已提交
526 527
| 错误码ID | 错误信息 |
| -------- | -------- |
528 529 530 531 532
| 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. |
533 534

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

**示例:**

M
m00512953 已提交
538
```ts
X
xuzhihao 已提交
539
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
540
import Base from '@ohos.base';
X
xuzhihao 已提交
541 542

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

## isRequestPublishFormSupported

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

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

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

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

**参数:**

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

577 578 579 580
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
581
| 202 | If the application is not a system application. |
582 583 584
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
585 586

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

Y
yanwenhao 已提交
588 589
**示例:**

M
m00512953 已提交
590
```ts
X
xuzhihao 已提交
591
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
592
import Base from '@ohos.base';
X
xuzhihao 已提交
593

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

## isRequestPublishFormSupported

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

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

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

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

**返回值:**

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

643 644 645 646
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
647
| 202 | If the application is not a system application. |
648 649
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
650 651

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

Y
yanwenhao 已提交
653 654
**示例:**

M
m00512953 已提交
655
```ts
X
xuzhihao 已提交
656
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
657
import Base from '@ohos.base';
X
xuzhihao 已提交
658

Y
yanwenhao 已提交
659
try {
X
xuzhihao 已提交
660
  formProvider.isRequestPublishFormSupported().then((isSupported: boolean) => {
Y
yanwenhao 已提交
661
    if (isSupported) {
X
xuzhihao 已提交
662
      let want: Want = {
M
mingxihua 已提交
663
        abilityName: 'FormAbility',
Y
yangzk 已提交
664
        parameters: {
M
mingxihua 已提交
665 666 667
          'ohos.extra.param.key.form_dimension': 2,
          'ohos.extra.param.key.form_name': 'widget',
          'ohos.extra.param.key.module_name': 'entry'
Y
yangzk 已提交
668
        }
Y
yanwenhao 已提交
669 670
      };
      try {
X
xuzhihao 已提交
671 672 673
        formProvider.requestPublishForm(want).then((data: string) => {
          console.log(`formProvider requestPublishForm success, form ID is : ${JSON.stringify(data)}`);
        }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
674
          console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
675 676
        });
      } catch (error) {
M
mingxihua 已提交
677
        console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
678 679
      }
    }
X
xuzhihao 已提交
680
  }).catch((error: Base.BusinessError) => {
M
mingxihua 已提交
681
    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
682 683
  });
} catch (error) {
M
mingxihua 已提交
684
  console.error(`catch error, code: ${error.code}, message: ${error.message})`);
Y
yanwenhao 已提交
685 686
}
```