当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1.4K Star 7.4K Fork 8.2K

OpenHarmony/docs
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
js-apis-inner-application-context.md 14.49 KB
一键复制 编辑 原始数据 按行查看 历史
wusongqing 提交于 8天前 . Update docs

Context

The Context module, inherited from BaseContext, provides context for abilities or applications, including access to application-specific resources.

NOTE

  • 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.
  • The APIs of this module can be used only in the stage model.

Inheritance and Holding Relationships of Different Context Types

  • Inheritance relationships among different types of context

    context-inheritance

  • Holding relationships among different types of context

    context-holding

Modules to Import

import { common } from '@kit.AbilityKit';

Properties

System capability: SystemCapability.Ability.AbilityRuntime.Core

Name Type Read-only Optional Description
resourceManager resmgr.ResourceManager No No Object for resource management.
Atomic service API: This API can be used in atomic services since API version 11.
applicationInfo ApplicationInfo No No Application information.
Atomic service API: This API can be used in atomic services since API version 11.
cacheDir string No No Cache directory.
Atomic service API: This API can be used in atomic services since API version 11.
tempDir string No No Temporary directory.
Atomic service API: This API can be used in atomic services since API version 11.
resourceDir11+ string No No Resource directory.
NOTE: You are required to manually create the resfile directory in <module-name>\resource. The resfile directory can be accessed only in read-only mode.
Atomic service API: This API can be used in atomic services since API version 11.
filesDir string No No File directory.
Atomic service API: This API can be used in atomic services since API version 11.
databaseDir string No No Database directory.
Atomic service API: This API can be used in atomic services since API version 11.
preferencesDir string No No Preferences directory.
Atomic service API: This API can be used in atomic services since API version 11.
bundleCodeDir string No No Bundle code directory. Do not access resource files using concatenated paths. Use @ohos.resourceManager instead.
Atomic service API: This API can be used in atomic services since API version 11.
distributedFilesDir string No No Distributed file directory.
Atomic service API: This API can be used in atomic services since API version 11.
cloudFileDir12+ string No No Cloud file directory.
Atomic service API: This API can be used in atomic services since API version 12.
eventHub EventHub No No Event hub that implements event subscription, unsubscription, and triggering.
Atomic service API: This API can be used in atomic services since API version 11.
area contextConstant.AreaMode No No Encryption level of the directory.
Atomic service API: This API can be used in atomic services since API version 11.
processName18+ string No No Process name of the current application.
Atomic service API: This API can be used in atomic services since API version 18.

Context.createModuleContext(deprecated)

createModuleContext(moduleName: string): Context

Creates the context based on the module name.

NOTE

This API is deprecated since API version 12. You are advised to use application.createModuleContext instead.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
moduleName string Yes Module name.

Return value

Type Description
Context Context created.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let moduleContext: common.Context;
    try {
      moduleContext = this.context.createModuleContext('entry');
    } catch (error) {
      console.error(`createModuleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

NOTE

Only the context of other modules in the current application and the context of the intra-application HSP can be obtained. The context of other applications cannot be obtained.

Context.getApplicationContext

getApplicationContext(): ApplicationContext

Obtains the context of this application.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Return value

Type Description
ApplicationContext Application context obtained.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let applicationContext: common.Context;
    try {
      applicationContext = this.context.getApplicationContext();
    } catch (error) {
      console.error(`getApplicationContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

Context.getGroupDir10+

getGroupDir(dataGroupID: string): Promise<string>

Obtains the shared directory based on a group ID. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
dataGroupID string Yes Group ID, which is assigned by the system when an atomic service project is created.

Return value

Type Description
Promise<string> Promise used to return the result. If no shared directory exists, null is returned. Only the encryption level EL2 is supported.

Error codes

For details about the error codes, see Universal Error Codes and Ability Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let groupId = "1";
    let getGroupDirContext: common.Context = this.context;
    try {
      getGroupDirContext.getGroupDir(groupId).then(data => {
        console.log("getGroupDir result:" + data);
      })
    } catch (error) {
      console.error(`getGroupDirContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
    }
  }
}

Context.getGroupDir10+

getGroupDir(dataGroupID: string, callback: AsyncCallback<string>): void

Obtains the shared directory based on a group ID. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
dataGroupID string Yes Group ID, which is assigned by the system when an atomic service project is created.
callback AsyncCallback<string> Yes Callback used to return the result. If no shared directory exists, null is returned. Only the encryption level EL2 is supported.

Error codes

For details about the error codes, see Universal Error Codes and Ability Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.
16000011 The context does not exist.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    console.log('MyAbility onCreate');
    let getGroupDirContext: common.Context = this.context;

    getGroupDirContext.getGroupDir("1", (err: BusinessError, data) => {
      if (err) {
        console.error(`getGroupDir faile, err: ${JSON.stringify(err)}`);
      } else {
        console.log(`getGroupDir result is: ${JSON.stringify(data)}`);
      }
    });
  }
}

Context.createAreaModeContext18+

createAreaModeContext(areaMode: contextConstant.AreaMode): Context

Creates the context for this application based on a data encryption level. This is required when an application needs to store different types of information in different directories. The application can obtain the corresponding directory.

Atomic service API: This API can be used in atomic services since API version 18.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
areaMode contextConstant.AreaMode Yes Data encryption level.

Return value

Type Description
Context Context created based on the data encryption level.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility, contextConstant } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let areaMode: contextConstant.AreaMode = contextConstant.AreaMode.EL2;
    let areaModeContext: common.Context;
    try {
      areaModeContext = this.context.createAreaModeContext(areaMode);
    } catch (error) {
      hilog.error(0x0000, 'testTag', 'createAreaModeContext error is:%{public}s', JSON.stringify(error));
    }
  }
}

Context.createDisplayContext15+

createDisplayContext(displayId: number): Context

Creates the context based on the specified display ID, so as to obtain and use other application contexts with screen information (including ScreenDensity and Direction).

Atomic service API: This API can be used in atomic services since API version 15.

System capability: SystemCapability.Ability.AbilityRuntime.Core

Parameters

Name Type Mandatory Description
displayId number Yes Display ID.

Return value

Type Description
Context Context with the specified screen information.

Error codes

For details about the error codes, see Universal Error Codes.

ID Error Message
401 Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types.

Example

import { common, UIAbility } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';

export default class EntryAbility extends UIAbility {
  onCreate() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
    let displayContext: common.Context;
    try {
      displayContext = this.context.createDisplayContext(0);
    } catch (error) {
      hilog.error(0x0000, 'testTag', 'createDisplayContext error is:%{public}s', JSON.stringify(error));
    }
  }
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
其他
1
https://gitee.com/openharmony/docs.git
git@gitee.com:openharmony/docs.git
openharmony
docs
docs
OpenHarmony-5.1.0-Release

搜索帮助