• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# FormExtensionContext
2
3FormExtensionContext模块是FormExtension的上下文环境,继承自ExtensionContext。
4
5FormExtensionContext模块提供FormExtension具有的接口和能力。
6
7> **说明:**
8>
9> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
10> 本模块接口仅可在Stage模型下使用。
11
12## 导入模块
13
14```ts
15import common from '@ohos.app.ability.common';
16```
17
18## 使用说明
19
20在使用FormExtensionContext的功能前,需要通过FormExtension获取。
21
22```ts
23import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility';
24import formBindingData from '@ohos.app.form.formBindingData';
25export default class MyFormExtensionAbility extends FormExtensionAbility {
26    onAddForm() {
27        let formContext = this.context; // 获取FormExtensionContext
28        // ...
29        let dataObj1 = {
30            temperature:'11c',
31            'time':'11:00'
32        };
33        let obj1 = formBindingData.createFormBindingData(dataObj1);
34        return obj1;
35    }
36}
37```
38
39## startAbility
40
41startAbility(want: Want, callback: AsyncCallback<void>): void
42
43拉起一个卡片所属应用的Ability。使用callback异步回调。
44
45**系统接口**:此接口为系统接口。
46
47**系统能力**:SystemCapability.Ability.Form
48
49**错误码:**
50
51| 错误码ID | 错误信息 |
52| -------- | -------- |
53| 202 | The application is not a system application. |
54| 401 | If the input parameter is not valid parameter. |
55| 16500050 | An IPC connection error happened. |
56| 16500100 | Failed to obtain the configuration information. |
57| 16500101 | The application is not a system application. |
58| 16501000 | An internal functional error occurred. |
59|以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。||
60
61**参数:**
62
63| 参数名 |                类型               | 必填 |              说明               |
64| ------| --------------------------------- | ---- | -------------------------------------- |
65| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
66| callback| AsyncCallback<void>       | 是  | 回调函数。当拉起一个卡片所属应用的Ability成功,err为undefined,否则为错误对象。 |
67
68**示例:**
69
70```ts
71let want = {
72    deviceId: '',
73    bundleName: 'com.example.formstartability',
74    abilityName: 'MainAbility',
75    action: 'action1',
76    entities: ['entity1'],
77    type: 'MIMETYPE',
78    uri: 'key={true,true,false}',
79    parameters: {}
80};
81this.context.startAbility(want, (error) => {
82    if (error) {
83      console.log('FormExtensionContext startAbility, error:' + JSON.stringify(error));
84    } else {
85      console.log(`FormExtensionContext startAbility success`);
86    }
87});
88```
89
90## startAbility
91
92startAbility(want: Want): Promise<void>
93
94拉起一个卡片所属应用的Ability。使用Promise异步回调。
95
96**系统接口**:此接口为系统接口。
97
98**系统能力**:SystemCapability.Ability.Form
99
100**参数:**
101
102| 参数名 |                类型               | 必填 |              说明               |
103| ------| --------------------------------- | ---- | -------------------------------------- |
104| want| [Want](js-apis-application-want.md) | 是  | 包含bundleName,abilityName以及用户自定参数用于拉起Ability。 |
105
106**返回值:**
107
108| 类型          | 说明                                |
109| ------------ | ---------------------------------- |
110| Promise<void< | 无返回结果的Promise对象。 |
111
112**错误码:**
113
114| 错误码ID | 错误信息 |
115| -------- | -------- |
116| 202 | The application is not a system application. |
117| 401 | If the input parameter is not valid parameter. |
118| 16500050 | An IPC connection error happened. |
119| 16500100 | Failed to obtain the configuration information. |
120| 16500101 | The application is not a system application. |
121| 16501000 | An internal functional error occurred. |
122|以上错误码的详细介绍请参见[卡片错误码](../errorcodes/errorcode-form.md)。||
123
124**示例:**
125
126```ts
127let want = {
128    deviceId: '',
129    bundleName: 'com.example.formstartability',
130    abilityName: 'MainAbility',
131    action: 'action1',
132    entities: ['entity1'],
133    type: 'MIMETYPE',
134    uri: 'key={true,true,false}',
135    parameters: {}
136};
137this.context.startAbility(want).then(() => {
138    console.info('StartAbility Success');
139}).catch((error) => {
140    console.info('StartAbility failed');
141});
142```