js-apis-application-context.md 5.0 KB
Newer Older
ahjxliubao2's avatar
ahjxliubao2 已提交
1 2
# Context

Y
yuyaozhi 已提交
3 4
Context模块提供开发者运行代码的上下文环境的能力,包括查询和设置应用信息、ResourceManager等信息。

Y
yuyaozhi 已提交
5 6
> **说明:**
> 
7 8
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
> 本模块接口仅可在Stage模型下使用。
ahjxliubao2's avatar
ahjxliubao2 已提交
9 10 11 12 13

提供开发者运行代码的上下文环境,包括应用信息、ResourceManager等信息。

## 使用说明

W
wusongqing 已提交
14
通过AbilityContext等继承实现。
ahjxliubao2's avatar
ahjxliubao2 已提交
15

16 17 18 19 20 21 22 23 24 25
 ```js
import AbilityContext from '@ohos.application.Ability'
  class MainAbility extends AbilityContext {
    onWindowStageCreate(windowStage) {
      let test = "com.example.test";
      let context = this.context.createBundleContext(test);
    }
  }
```

ahjxliubao2's avatar
ahjxliubao2 已提交
26
## 属性
27

ahjxliubao2's avatar
ahjxliubao2 已提交
28
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
29

杨亮 已提交
30
  | 名称 | 参数类型 | 可读 | 可写 | 说明 |
ahjxliubao2's avatar
ahjxliubao2 已提交
31
| -------- | -------- | -------- | -------- | -------- |
Y
yuyaozhi 已提交
32
| resourceManager | resmgr.ResourceManager; | 是 | 否 | ResourceManager对象。 |
杨亮 已提交
33 34 35 36 37 38 39 40 41
| applicationInfo | ApplicationInfo | 是 | 否 | 当前应用信息。 |
| cacheDir | string | 是 | 否 | 应用在内部存储上的缓存路径。 |
| tempDir | string | 是 | 否 | 应用的临时文件路径。 |
| filesDir | string | 是 | 否 | 应用在内部存储上的文件路径。 |
| databaseDir | string | 是 | 否 | 获取本地数据存储路径。 |
| bundleCodeDir | string | 是 | 否 | 应用安装路径。 |
| distributedFilesDir | string | 是 | 否 | 应用的分布式文件路径。 |
| eventHub | [EventHub](js-apis-eventhub.md) | 是 | 否 | 事件中心信息。|
| area | [AreaMode](#areamode) | 是 | 是 | 文件分区。|
42
| preferencesDir | string | 是 | 是 | 指示应用程序首选项目录。|
ahjxliubao2's avatar
ahjxliubao2 已提交
43

Y
yuyaozhi 已提交
44
## Context.createBundleContext
ahjxliubao2's avatar
ahjxliubao2 已提交
45 46 47 48 49

createBundleContext(bundleName: string): Context;

创建指定应用上下文。

Y
yuyaozhi 已提交
50 51 52 53
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

杨亮 已提交
54
  | 参数名 | 类型 | 必填 | 说明 |
ahjxliubao2's avatar
ahjxliubao2 已提交
55
  | -------- | -------- | -------- | -------- |
杨亮 已提交
56
  | bundleName | string | 是 | 应用bundle名。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
57

Y
yuyaozhi 已提交
58 59
**返回值:**

杨亮 已提交
60
  | 类型 | 说明 |
ahjxliubao2's avatar
ahjxliubao2 已提交
61
  | -------- | -------- |
杨亮 已提交
62
  | Context | 对应创建应用的上下文context。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
63

Y
yuyaozhi 已提交
64
**示例:**
杨亮 已提交
65

Y
yuyaozhi 已提交
66
  ```js
Y
yuyaozhi 已提交
67 68 69 70 71 72 73 74
  import AbilityContext from '@ohos.application.Ability'
      class MainAbility extends AbilityContext {
          onWindowStageCreate(windowStage) {
              let test = "com.example.test";
              let context = this.context.createBundleContext(test);
      }
}

ahjxliubao2's avatar
ahjxliubao2 已提交
75 76 77
  ```


杨亮 已提交
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
## Context.createModuleContext

createModuleContext(moduleName: string): Context;

创建指定hap上下文。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | moduleName | string | 是 | 应用内hap名。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | Context | 对应创建hap的上下文context。 |

**示例:**

  ```js
  import AbilityContext from '@ohos.application.Ability'
      class MainAbility extends AbilityContext {
          onWindowStageCreate(windowStage) {
              let moduleName = "module";
              let context = this.context.createModuleContext(moduleName);
      }
}

  ```


## Context.createModuleContext

createModuleContext(bundleName: string, moduleName: string): Context;

创建指定应用上下文。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | bundleName | string | 是 | 应用bundle名。 |
  | moduleName | string | 是 | 应用内hap名。 |

**返回值:**

  | 类型 | 说明 |
  | -------- | -------- |
  | Context | 对应创建应用内hap的上下文context。 |

**示例:**

  ```js
  import AbilityContext from '@ohos.application.Ability'
      class MainAbility extends AbilityContext {
          onWindowStageCreate(windowStage) {
              let bundleName = "com.example.bundle";
              let moduleName = "module";
              let context = this.context.createModuleContext(bundleName, moduleName);
      }
}

  ```


Y
yuyaozhi 已提交
148
## Context.getApplicationContext
ahjxliubao2's avatar
ahjxliubao2 已提交
149

150
getApplicationContext(): ApplicationContext;
ahjxliubao2's avatar
ahjxliubao2 已提交
151

152
获取当前applicationContext。
ahjxliubao2's avatar
ahjxliubao2 已提交
153

Y
yuyaozhi 已提交
154 155 156 157
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**返回值:**

158 159 160
| 类型 | 说明 |
| -------- | -------- |
| ApplicationContext | 当前ApplicationContext对象信息。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
161

Y
yuyaozhi 已提交
162
**示例:**
杨亮 已提交
163

Y
yuyaozhi 已提交
164
  ```js
ahjxliubao2's avatar
ahjxliubao2 已提交
165
  // 必选项。
166
  let applicationContext = this.context.getApplicationContext();
ahjxliubao2's avatar
ahjxliubao2 已提交
167
  ```
X
xuzhihao 已提交
168 169 170 171 172 173 174 175 176 177 178


## AreaMode

访问的文件分区,每个文件分区有对应自己的内容。

**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core

| 变量            | 值    | 描述            |
| --------------- | ---- | --------------- |
| EL1             | 0    | 设备级加密区。   |
179
| EL2             | 1    | 用户凭据加密区。默认为EL2。 |