1# ExtensionContext 2 3The **ExtensionContext** module, inherited from **Context**, implements the context for Extension abilities. 4 5This module provides APIs for accessing resources of a specific Extension ability. An Extension ability can use the context directly provided by **ExtensionContext** or that extended from **ExtensionContext**. 6 7> **NOTE** 8> 9> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 10> - The APIs of this module can be used only in the stage model. 11 12## Modules to Import 13 14```ts 15import { common } from '@kit.AbilityKit'; 16``` 17 18## Attributes 19 20**Atomic service API**: This API can be used in atomic services since API version 11. 21 22**System capability**: SystemCapability.Ability.AbilityRuntime.Core 23 24| Name | Type | Readable | Writable | Description | 25| -------- | -------- | -------- | -------- | -------- | 26| currentHapModuleInfo | [HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) | Yes | No | Information about the HAP file.<br>(See **api\bundle\hapModuleInfo.d.ts** in the **SDK** directory.) | 27| config | [Configuration](js-apis-app-ability-configuration.md) | Yes | No | Module configuration information.<br>(See **api\@ohos.app.ability.Configuration.d.ts** in the **SDK** directory.) | 28| extensionAbilityInfo | [ExtensionAbilityInfo](js-apis-bundleManager-extensionAbilityInfo.md) | Yes | No | Extension ability information.<br>(See **api\bundle\extensionAbilityInfo.d.ts** in the **SDK** directory.) | 29 30## When to Use 31**ExtensionContext** provides information about an Extension ability, module, and HAP file. You can use the information based on service requirements. 32 33**Example** 34 35```ts 36// Singleton object GlobalContext.ts 37export class GlobalContext { 38 private static instance: GlobalContext; 39 private _objects = new Map<string, Object>(); 40 41 private constructor() { 42 } 43 44 public static getContext(): GlobalContext { 45 if (!GlobalContext.instance) { 46 GlobalContext.instance = new GlobalContext(); 47 } 48 return GlobalContext.instance; 49 } 50 51 getObject(value: string): Object | undefined { 52 return this._objects.get(value); 53 } 54 55 setObject(key: string, objectClass: Object): void { 56 this._objects.set(key, objectClass); 57 } 58} 59``` 60 61```ts 62import { FormExtensionAbility, formBindingData } from '@kit.FormKit'; 63import { Want } from '@kit.AbilityKit'; 64import { GlobalContext } from '../GlobalContext'; 65 66export default class MyFormExtensionAbility extends FormExtensionAbility { 67 onAddForm(want: Want) { 68 console.log(`FormExtensionAbility onAddForm, want: ${want.abilityName}`); 69 let dataObj1: Record<string, string> = { 70 'temperature': '11c', 71 'time': '11:00' 72 }; 73 GlobalContext.getContext().setObject("ExtensionContext", this.context); 74 let obj1: formBindingData.FormBindingData = formBindingData.createFormBindingData(dataObj1); 75 return obj1; 76 } 77}; 78``` 79