js-apis-application-context.md 4.5 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
let test = "com.example.test";
let context = this.context.createBundleContext(test);
Y
yuyaozhi 已提交
72
```
ahjxliubao2's avatar
ahjxliubao2 已提交
73

杨亮 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
## Context.createModuleContext

createModuleContext(moduleName: string): Context;

创建指定hap上下文。

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

**参数:**

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

**返回值:**

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

**示例:**

Y
yuyaozhi 已提交
96
```js
Y
yuyaozhi 已提交
97 98
let moduleName = "module";
let context = this.context.createModuleContext(moduleName);
Y
yuyaozhi 已提交
99
```
杨亮 已提交
100 101 102 103 104 105 106 107 108

## Context.createModuleContext

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

创建指定应用上下文。

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

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

杨亮 已提交
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
**参数:**

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

**返回值:**

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

**示例:**

Y
yuyaozhi 已提交
126
```js
Y
yuyaozhi 已提交
127 128 129
let bundleName = "com.example.bundle";
let moduleName = "module";
let context = this.context.createModuleContext(bundleName, moduleName);
Y
yuyaozhi 已提交
130
```
杨亮 已提交
131

Y
yuyaozhi 已提交
132
## Context.getApplicationContext
ahjxliubao2's avatar
ahjxliubao2 已提交
133

134
getApplicationContext(): ApplicationContext;
ahjxliubao2's avatar
ahjxliubao2 已提交
135

136
获取当前applicationContext。
ahjxliubao2's avatar
ahjxliubao2 已提交
137

Y
yuyaozhi 已提交
138 139 140 141
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**返回值:**

142 143 144
| 类型 | 说明 |
| -------- | -------- |
| ApplicationContext | 当前ApplicationContext对象信息。 |
ahjxliubao2's avatar
ahjxliubao2 已提交
145

Y
yuyaozhi 已提交
146
**示例:**
杨亮 已提交
147

Y
yuyaozhi 已提交
148
```js
Y
yuyaozhi 已提交
149
let applicationContext = this.context.getApplicationContext();
Y
yuyaozhi 已提交
150
```
X
xuzhihao 已提交
151 152 153 154 155 156 157 158 159 160

## AreaMode

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

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

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