1e41f4b71Sopenharmony_ci# @ohos.app.form.formAgent (FormAgent)(系统接口)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciFormAgent模块提供了卡片代理相关接口的能力,目前仅包括请求发布卡片。
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **说明:**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8e41f4b71Sopenharmony_ci> 本模块接口为系统接口。
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci## 导入模块
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```ts
13e41f4b71Sopenharmony_ciimport { formAgent } from '@kit.FormKit';
14e41f4b71Sopenharmony_ci```
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci## requestPublishForm
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_cirequestPublishForm(want: Want, callback: AsyncCallback<string>): void
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci请求发布一张卡片到使用方,使用callbck异步回调。使用方通常为桌面。
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.AGENT_REQUIRE_FORM
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Ability.Form
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci**参数:**
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| 参数名   | 类型                                | 必填 | 说明                                                         |
31e41f4b71Sopenharmony_ci| -------- | ----------------------------------- | ---- | ------------------------------------------------------------ |
32e41f4b71Sopenharmony_ci| want     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 发布请求,需包含以下字段。<br>bundleName: 目标卡片bundleName<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: 目标卡片moduleName|
33e41f4b71Sopenharmony_ci| callback | AsyncCallback&lt;string&gt;         | 是   |  回调函数,返回卡片标识。 |
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**错误码:**
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
38e41f4b71Sopenharmony_ci| -------- | -------- |
39e41f4b71Sopenharmony_ci| 202 | The application is not a system application. |
40e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
41e41f4b71Sopenharmony_ci| 16500050 | IPC connection error. |
42e41f4b71Sopenharmony_ci| 16500100 | Failed to obtain the configuration information. |
43e41f4b71Sopenharmony_ci| 16501000 | An internal functional error occurred. |
44e41f4b71Sopenharmony_ci| 16501008 | Waiting for the form addition to the desktop timed out. |
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci以上错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci**示例:**
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci```ts
51e41f4b71Sopenharmony_ciimport { formAgent } from '@kit.FormKit';
52e41f4b71Sopenharmony_ciimport { Want } from '@kit.AbilityKit';
53e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_cilet want: Want = {
56e41f4b71Sopenharmony_ci  bundleName: 'com.ohos.exampledemo',
57e41f4b71Sopenharmony_ci  abilityName: 'FormAbility',
58e41f4b71Sopenharmony_ci  parameters: {
59e41f4b71Sopenharmony_ci    'ohos.extra.param.key.form_dimension': 2,
60e41f4b71Sopenharmony_ci    'ohos.extra.param.key.form_name': 'widget',
61e41f4b71Sopenharmony_ci    'ohos.extra.param.key.module_name': 'entry'
62e41f4b71Sopenharmony_ci  }
63e41f4b71Sopenharmony_ci};
64e41f4b71Sopenharmony_citry {
65e41f4b71Sopenharmony_ci  formAgent.requestPublishForm(want, (error: BusinessError, data: string) => {
66e41f4b71Sopenharmony_ci    if (error) {
67e41f4b71Sopenharmony_ci      console.error(`callback error, code: ${error.code}, message: ${error.message})`);
68e41f4b71Sopenharmony_ci      return;
69e41f4b71Sopenharmony_ci    }
70e41f4b71Sopenharmony_ci    console.log(`formAgent requestPublishForm, form ID is: ${JSON.stringify(data)}`);
71e41f4b71Sopenharmony_ci  });
72e41f4b71Sopenharmony_ci} catch (error) {
73e41f4b71Sopenharmony_ci  console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message})`);
74e41f4b71Sopenharmony_ci}
75e41f4b71Sopenharmony_ci```
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ci## requestPublishForm
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_cirequestPublishForm(want: Want): Promise&lt;string&gt;
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci请求发布一张卡片到使用方,使用Promise异步回调。使用方通常为桌面。
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.AGENT_REQUIRE_FORM
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Ability.Form
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci**系统接口:** 此接口为系统接口。
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci**参数:**
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci| 参数名          | 类型                                                         | 必填 | 说明                                                         |
92e41f4b71Sopenharmony_ci| --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
93e41f4b71Sopenharmony_ci| want     | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是   | 发布请求,需包含以下字段。<br>bundleName: 目标卡片bundleName<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: 目标卡片moduleName |
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci**返回值:**
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci| 类型          | 说明                                |
98e41f4b71Sopenharmony_ci| :------------ | :---------------------------------- |
99e41f4b71Sopenharmony_ci| Promise&lt;string&gt; | Promise对象。返回卡片标识。 |
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci**错误码:**
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 |
104e41f4b71Sopenharmony_ci| -------- | -------- |
105e41f4b71Sopenharmony_ci| 202 | The application is not a system application. |
106e41f4b71Sopenharmony_ci| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types; 3.Parameter verification failed. |
107e41f4b71Sopenharmony_ci| 16500050 | IPC connection error. |
108e41f4b71Sopenharmony_ci| 16500100 | Failed to obtain the configuration information. |
109e41f4b71Sopenharmony_ci| 16501000 | An internal functional error occurred. |
110e41f4b71Sopenharmony_ci| 16501008 | Waiting for the form addition to the desktop timed out. |
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci以上错误码的详细介绍请参见[卡片错误码](errorcode-form.md)。
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci**示例:**
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci```ts
117e41f4b71Sopenharmony_ciimport { formAgent } from '@kit.FormKit';
118e41f4b71Sopenharmony_ciimport { Want } from '@kit.AbilityKit';
119e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit';
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_cilet want: Want = {
122e41f4b71Sopenharmony_ci  bundleName: 'com.ohos.exampledemo',
123e41f4b71Sopenharmony_ci  abilityName: 'FormAbility',
124e41f4b71Sopenharmony_ci  parameters: {
125e41f4b71Sopenharmony_ci    'ohos.extra.param.key.form_dimension': 2,
126e41f4b71Sopenharmony_ci    'ohos.extra.param.key.form_name': 'widget',
127e41f4b71Sopenharmony_ci    'ohos.extra.param.key.module_name': 'entry'
128e41f4b71Sopenharmony_ci  }
129e41f4b71Sopenharmony_ci};
130e41f4b71Sopenharmony_citry {
131e41f4b71Sopenharmony_ci  formAgent.requestPublishForm(want).then((data: string) => {
132e41f4b71Sopenharmony_ci    console.log(`formAgent requestPublishForm success, form ID is : ${JSON.stringify(data)}`);
133e41f4b71Sopenharmony_ci  }).catch((error: BusinessError) => {
134e41f4b71Sopenharmony_ci    console.error(`promise error, code: ${error.code}, message: ${error.message})`);
135e41f4b71Sopenharmony_ci  });
136e41f4b71Sopenharmony_ci} catch (error) {
137e41f4b71Sopenharmony_ci  console.error(`catch error, code: ${(error as BusinessError).code}, message: ${(error as BusinessError).message})`);
138e41f4b71Sopenharmony_ci}
139e41f4b71Sopenharmony_ci```