@ohos.app.ability.application (Application) (System API)
You can use this module to create a Context.
NOTE
The initial APIs of this module are supported since API version 12. 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.
Modules to Import
import { application } from '@kit.AbilityKit';
application.createModuleContext12+
createModuleContext(context: Context, bundleName: string, moduleName: string): Promise<Context>
Creates the context for a module. This API uses a promise to return the result.
NOTE
Starting from API version 18, the context can obtain the process name of the current application. The processName property in the context created by createModuleContext is the same as the processName property in the input parameter Context. The values of other properties are obtained based on the input parameters Context, bundleName, and moduleName.
Creating a module context involves resource querying and initialization, which can be time-consuming. In scenarios where application fluidity is critical, avoid frequently or repeatedly calling the createModuleContext API to create multiple context instances, as this may negatively impact user experience.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| context | Context | Yes | Application context. |
| bundleName | string | Yes | Bundle name of the application. If an empty string is passed in, the current application is used by default. |
| moduleName | string | Yes | Module name. |
Return value
| Type | Description |
|---|---|
| Promise<Context> | Promise used to return the context created. |
Error codes
For details about the error codes, see Ability Error Codes.
| ID | Error Message |
|---|---|
| 201 | Permission denied. |
| 202 | Permission denied, non-system app called system api. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
Example
import { UIAbility, application, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
export default class EntryAbility extends UIAbility {
onCreate() {
let moduleContext: common.Context;
try {
application.createModuleContext(this.context, 'bundlename', 'entry').then((data: Context)=>{
moduleContext = data;
console.info('createModuleContext success!');
}).catch((error : BusinessError)=>{
console.error(`createModuleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
})
} catch (error) {
console.error(`createModuleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
}
}
}
application.createBundleContext12+
createBundleContext(context: Context, bundleName: string): Promise<Context>
Creates the context for an application. This API uses a promise to return the result.
NOTE
Starting from API version 18, the context can obtain the process name of the current application. The processName property in the context created by createBundleContext is the same as the processName property in the input parameter Context. The values of other properties are obtained based on the input parameters Context, bundleName, and moduleName.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| context | Context | Yes | Application context. |
| bundleName | string | Yes | Bundle name of the application. |
Return value
| Type | Description |
|---|---|
| Promise<Context> | Promise used to return the context created. |
Error codes
For details about the error codes, see Ability Error Codes.
| ID | Error Message |
|---|---|
| 201 | Permission denied. |
| 202 | Permission denied, non-system app called system api. |
| 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. |
Example
import { UIAbility, application, common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
export default class EntryAbility extends UIAbility {
onCreate() {
let moduleContext: common.Context;
try {
application.createBundleContext(this.context, 'bundlename').then((data: Context)=>{
moduleContext = data;
console.info('createBundleContext success!');
}).catch((error : BusinessError)=>{
console.error(`createBundleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
})
} catch (error) {
console.error(`createBundleContext failed, error.code: ${(error as BusinessError).code}, error.message: ${(error as BusinessError).message}`);
}
}
}
application.createPluginModuleContextForHostBundle20+
createPluginModuleContextForHostBundle(context: Context, pluginBundleName: string, pluginModuleName: string, hostBundleName: string): Promise<Context>
Creates the context for a plugin based on a given context, plugin bundle name, plugin module name, and application bundle name to obtain the basic information about the plugin. This API uses a promise to return the result.
Required permissions: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API.
Parameters
| Name | Type | Mandatory | Description |
|---|---|---|---|
| context | Context | Yes | Application context. |
| pluginBundleName | string | Yes | Bundle name of the plugin. |
| pluginModuleName | string | Yes | Module name of the plugin. |
| hostBundleName | string | Yes | Bundle name of the application for which the plugin is installed. |
Return value
| Type | Description |
|---|---|
| Promise<Context> | Promise used to return the context created, in which the processName and config properties are the same as those of the input context. |
Error codes
For details about the error codes, see Universal Error Codes.
| ID | Error Message |
|---|---|
| 201 | Permission denied. |
| 202 | Permission denied, non-system app called system api. |
Example
import { AbilityConstant, UIAbility, application, common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let moduleContext: common.Context;
try {
application.createPluginModuleContextForHostBundle(this.context, 'com.example.pluginBundleName', 'pluginModuleName', 'com.example.hostBundleName')
.then((data: Context) => {
moduleContext = data;
console.info('createPluginModuleContextForHostBundle success!');
})
.catch((error: BusinessError) => {
let code: number = (error as BusinessError).code;
let message: string = (error as BusinessError).message;
console.error(`createPluginModuleContextForHostBundle failed, error.code: ${code}, error.message: ${message}`);
});
} catch (error) {
let code: number = (error as BusinessError).code;
let message: string = (error as BusinessError).message;
console.error(`createPluginModuleContextForHostBundle failed, error.code: ${code}, error.message: ${message}`);
}
}
}