js-apis-app-form-formProvider.md 24.4 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) {
X
xuzhihao 已提交
60
  console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).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) {
X
xuzhihao 已提交
113
  console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).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
  let obj: formBindingData.FormBindingData = formBindingData.createFormBindingData({
    temperature: '22c',
    time: '22:00'
  });
X
xuzhihao 已提交
159
  formProvider.updateForm(formId, obj, (error: Base.BusinessError) => {
Y
yanwenhao 已提交
160
    if (error) {
M
mingxihua 已提交
161
      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
Y
yangzk 已提交
162
      return;
Y
yanwenhao 已提交
163
    }
Y
yangzk 已提交
164
    console.log(`formProvider updateForm success`);
Y
yanwenhao 已提交
165 166
  });
} catch (error) {
X
xuzhihao 已提交
167
  console.error(`catch error, code: ${(error as Base.BusinessError).code}, message: ${(error as Base.BusinessError).message})`);
Y
yanwenhao 已提交
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
}
```

## updateForm

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
196 197 198 199 200 201 202
| 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. |
203 204

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

**示例:**

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

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

## getFormsInfo

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

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

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

**参数:**

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

**错误码:**
| 错误码ID | 错误信息 |
| -------- | -------- |
245 246 247 248
| 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. |
249 250

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


**示例:**

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

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

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

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

**参数:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
287 288 289 290
| 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. |
291 292

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

**示例:**

M
m00512953 已提交
296
```ts
Y
yangzk 已提交
297 298 299 300
import formInfo from '@ohos.app.form.formInfo';

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

## getFormsInfo

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
340 341 342 343
| 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. |
344 345

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

**示例:**

M
m00512953 已提交
349
```ts
Y
yangzk 已提交
350
import formInfo from '@ohos.app.form.formInfo';
Y
yuyaozhi 已提交
351
import Base from '@ohos.base';
Y
yangzk 已提交
352 353 354

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

## requestPublishForm

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

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

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

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

**参数:**

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

386 387
**错误码:**

Y
yanwenhao 已提交
388 389
| 错误码ID | 错误信息 |
| -------- | -------- |
390 391 392 393 394
| 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. |
395 396

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

**示例:**

M
m00512953 已提交
400
```ts
401
import formBindingData from '@ohos.app.form.formBindingData';
X
xuzhihao 已提交
402
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
403
import Base from '@ohos.base';
Y
yangzk 已提交
404

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

## requestPublishForm

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

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

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

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

**参数:**

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

447 448
**错误码:**

Y
yanwenhao 已提交
449 450
| 错误码ID | 错误信息 |
| -------- | -------- |
451 452 453 454 455
| 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. |
456 457

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

**示例:**

M
m00512953 已提交
461
```ts
X
xuzhihao 已提交
462
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
463
import Base from '@ohos.base';
X
xuzhihao 已提交
464 465

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

## requestPublishForm

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

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

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

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

**参数:**

| 参数名          | 类型                                                         | 必填 | 说明                                                         |
| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
M
mingxihua 已提交
500
| 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 已提交
501
| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | 否   | 创建卡片的数据,默认为空,不提供创建卡片数据。                                      |
Y
yanwenhao 已提交
502 503 504 505 506 507 508

**返回值:**

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

509 510
**错误码:**

Y
yanwenhao 已提交
511 512
| 错误码ID | 错误信息 |
| -------- | -------- |
513 514 515 516 517
| 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. |
518 519

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

**示例:**

M
m00512953 已提交
523
```ts
X
xuzhihao 已提交
524
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
525
import Base from '@ohos.base';
X
xuzhihao 已提交
526 527

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

## isRequestPublishFormSupported

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

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

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

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

**参数:**

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

562 563 564 565
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
566
| 202 | If the application is not a system application. |
567 568 569
| 401 | If the input parameter is not valid parameter. |
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
570 571

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

Y
yanwenhao 已提交
573 574
**示例:**

M
m00512953 已提交
575
```ts
X
xuzhihao 已提交
576
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
577
import Base from '@ohos.base';
X
xuzhihao 已提交
578

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

## isRequestPublishFormSupported

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

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

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

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

**返回值:**

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

628 629 630 631
**错误码:**

| 错误码ID | 错误信息 |
| -------- | -------- |
Y
yuyaozhi 已提交
632
| 202 | If the application is not a system application. |
633 634
| 16500050 | An IPC connection error happened. |
| 16501000 | An internal functional error occurred. |
635 636

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

Y
yanwenhao 已提交
638 639
**示例:**

M
m00512953 已提交
640
```ts
X
xuzhihao 已提交
641
import Want from '@ohos.app.ability.Want';
Y
yuyaozhi 已提交
642
import Base from '@ohos.base';
X
xuzhihao 已提交
643

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