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