往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)
Context
Context模块提供了ability或application的上下文的能力,包括允许访问特定于应用程序的资源、请求和验证权限等。
说明
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在FA模型下使用。
导入模块
import featureAbility from '@ohos.ability.featureAbility';
使用说明
Context对象是在featureAbility中创建实例,并通过featureAbility的getContext接口返回,因此在使用Context时,必须导入@ohos.ability.featureAbility库。示例如下:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.getOrCreateLocalDir().then((data) => {
console.info(`getOrCreateLocalDir data: ${JSON.stringify(data)}`);
});
Context.getOrCreateLocalDir7+
getOrCreateLocalDir(callback: AsyncCallback<string>): void
获取应用程序的本地根目录。使用callback异步回调。
如果是第一次调用,将创建目录。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<string> | 是 | 回调函数,返回应用程序的本地根目录。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.getOrCreateLocalDir((error, data)=>{
if (error && error.code !== 0) {
console.error(`getOrCreateLocalDir fail, error: ${JSON.stringify(error)}`);
} else {
console.log(`getOrCreateLocalDir success, data: ${JSON.stringify(data)}`);
}
});
Context.getOrCreateLocalDir7+
getOrCreateLocalDir(): Promise<string>
获取应用程序的本地根目录。使用Promise异步回调。
如果是第一次调用,将创建目录。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
返回值:
类型 | 说明 |
---|---|
Promise<string> | Promise对象,返回应用程序的本地根目录。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.getOrCreateLocalDir().then((data) => {
console.info(`getOrCreateLocalDir data: ${JSON.stringify(data)}`);
});
Context.verifyPermission7+
verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback<number>): void
验证系统中运行的特定pid和uid是否允许指定的权限。使用callback异步回调。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permission | string | 是 | 指定权限的名称。 |
options | PermissionOptions | 是 | 权限选项。 |
callback | AsyncCallback<number> | 是 | 回调函数,返回权限验证结果,0有权限,-1无权限。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
import bundle from '@ohos.bundle.bundleManager';
import { BusinessError } from '@ohos.base';
let context: featureAbility.Context = featureAbility.getContext();
bundle.getBundleInfo('com.context.test', 1, (err: BusinessError, datainfo: bundle.BundleInfo) =>{
context.verifyPermission('com.example.permission', {uid:datainfo.appInfo.uid}, (error, data) =>{
if (error && error.code !== 0) {
console.error(`verifyPermission fail, error: ${JSON.stringify(error)}`);
} else {
console.log(`verifyPermission success, data: ${JSON.stringify(data)}`);
}
});
});
Context.verifyPermission7+
verifyPermission(permission: string, callback: AsyncCallback<number>): void
验证系统中运行的当前pid和uid是否具有指定的权限。使用callback异步回调。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permission | string | 是 | 指定权限的名称。 |
callback | AsyncCallback<number> | 是 | 回调函数,返回权限验证结果,0有权限,-1无权限。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.verifyPermission('com.example.permission', (error, data) =>{
if (error && error.code !== 0) {
console.error(`verifyPermission fail, error: ${JSON.stringify(error)}`);
} else {
console.log(`verifyPermission success, data: ${JSON.stringify(data)}`);
}
});
Context.verifyPermission7+
verifyPermission(permission: string, options?: PermissionOptions): Promise<number>
验证系统中运行的特定pid和uid是否具有指定的权限。使用Promise异步回调。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permission | string | 是 | 指定权限的名称。 |
options | PermissionOptions | 否 | 权限选项。 |
返回值:
类型 | 说明 |
---|---|
Promise<number> | Promise对象,如果pid和uid具有权限,则使用0进行异步回调;否则使用-1回调。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.verifyPermission('com.context.permission', {pid:1}).then((data) => {
console.info(`verifyPermission data: ${JSON.stringify(data)}`);
});
Context.requestPermissionsFromUser7+
requestPermissionsFromUser(permissions: Array<string>, requestCode: number, resultCallback: AsyncCallback<PermissionRequestResult>): void
从系统请求某些权限。使用callback异步回调。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
permissions | Array<string> | 是 | 指示要请求的权限列表。此参数不能为null。 |
requestCode | number | 是 | 指示要传递给PermissionRequestResult的请求代码。 |
resultCallback | AsyncCallback<PermissionRequestResult> | 是 | 回调函数,返回授权结果信息。 |
示例:
import featureAbility from '@ohos.ability.featureAbility';
let context: featureAbility.Context = featureAbility.getContext();
context.requestPermissionsFromUser(
['com.example.permission1',
'com.example.permission2',
'com.example.permission3',
'com.example.permission4',
'com.example.permission5'],
1,
(error, data) =>