鸿蒙5.0开发进阶:ArkTS API-Context

往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)


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) =>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值