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```