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

## 使用说明

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

Y
yuyaozhi 已提交
14 15 16 17
```js
import Ability from '@ohos.application.Ability'

class MainAbility extends Ability {
18
    onWindowStageCreate(windowStage) {
Y
yuyaozhi 已提交
19 20
        let test = "com.example.test";
        let context = this.context.createBundleContext(test);
21
    }
Y
yuyaozhi 已提交
22
}
23 24
```

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

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

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

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

createBundleContext(bundleName: string): Context;

创建指定应用上下文。

49 50
**需要权限**:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

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

53 54
**系统API**: 此接口为系统接口,三方应用不支持调用。

Y
yuyaozhi 已提交
55 56
**参数:**

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

Y
yuyaozhi 已提交
61 62
**返回值:**

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

Y
yuyaozhi 已提交
67
**示例:**
杨亮 已提交
68

Y
yuyaozhi 已提交
69
```js
Y
yuyaozhi 已提交
70 71 72 73 74 75 76 77
import Ability from '@ohos.application.Ability'

class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
        let test = "com.example.test";
        let context = this.context.createBundleContext(test);
    }
}
Y
yuyaozhi 已提交
78
```
ahjxliubao2's avatar
ahjxliubao2 已提交
79

杨亮 已提交
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
## Context.createModuleContext

createModuleContext(moduleName: string): Context;

创建指定hap上下文。

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

**参数:**

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

**返回值:**

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

**示例:**

Y
yuyaozhi 已提交
102
```js
Y
yuyaozhi 已提交
103 104 105 106 107 108 109 110
import Ability from '@ohos.application.Ability'

class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
        let moduleName = "module";
        let context = this.context.createModuleContext(moduleName);
    }
}
Y
yuyaozhi 已提交
111
```
杨亮 已提交
112 113 114 115 116 117 118 119 120

## Context.createModuleContext

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

创建指定应用上下文。

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

121 122
**系统API**: 此接口为系统接口,三方应用不支持调用。

杨亮 已提交
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
**参数:**

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

**返回值:**

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

**示例:**

Y
yuyaozhi 已提交
138
```js
Y
yuyaozhi 已提交
139 140 141 142 143 144 145 146 147
import Ability from '@ohos.application.Ability'

class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
        let bundleName = "com.example.bundle";
        let moduleName = "module";
        let context = this.context.createModuleContext(bundleName, moduleName);
    }
}
Y
yuyaozhi 已提交
148
```
杨亮 已提交
149

Y
yuyaozhi 已提交
150
## Context.getApplicationContext
ahjxliubao2's avatar
ahjxliubao2 已提交
151

152
getApplicationContext(): ApplicationContext;
ahjxliubao2's avatar
ahjxliubao2 已提交
153

154
获取当前applicationContext。
ahjxliubao2's avatar
ahjxliubao2 已提交
155

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

**返回值:**

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

Y
yuyaozhi 已提交
164
**示例:**
杨亮 已提交
165

Y
yuyaozhi 已提交
166
```js
Y
yuyaozhi 已提交
167 168 169 170 171 172 173
import Ability from '@ohos.application.Ability'

class MainAbility extends Ability {
    onWindowStageCreate(windowStage) {
        let applicationContext = this.context.getApplicationContext();
    }
}
Y
yuyaozhi 已提交
174
```
X
xuzhihao 已提交
175 176 177 178 179 180 181 182 183 184

## AreaMode

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

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

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