From 1ec6673f38aeda9945ab5820aa419d86d60823e9 Mon Sep 17 00:00:00 2001 From: zyjhandsome Date: Wed, 28 Dec 2022 15:42:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zyjhandsome --- .../security/accesstoken-guidelines.md | 45 ++++--------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/zh-cn/application-dev/security/accesstoken-guidelines.md b/zh-cn/application-dev/security/accesstoken-guidelines.md index 1a08243123..226225005f 100644 --- a/zh-cn/application-dev/security/accesstoken-guidelines.md +++ b/zh-cn/application-dev/security/accesstoken-guidelines.md @@ -7,7 +7,7 @@ 本文将从如下场景分别介绍: - [配置文件权限声明](#配置文件权限声明) -- [ACL权限声明](#ACL权限声明) +- [ACL方式声明](#ACL方式声明) - [向用户申请授权](#向用户申请授权) - [user_grant权限预授权](#user_grant权限预授权) @@ -26,7 +26,7 @@ | ability | 否 | 标识需要使用到该权限的Ability,标签为数组形式。
**适用模型:**FA模型 | | when | 否 | 标识权限使用的时机,值为`inuse/always`。
- inuse:表示为仅允许前台使用。
- always:表示前后台都可使用。 | -### Stage模型 +### Stage模型配置 使用Stage模型的应用,需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中声明权限。 @@ -60,7 +60,7 @@ } ``` -### FA模型 +### FA模型配置 使用FA模型的应用,需要在config.json配置文件中声明权限。 @@ -94,7 +94,7 @@ } ``` -## ACL权限声明 +## ACL方式声明 应用在申请`system_basic`等级权限时,高于应用默认的`normal`等级。当应用需要申请权限项的等级高于应用默认的等级时,需要通过ACL方式进行声明使用。例如应用在申请访问用户公共目录下音乐类型的文件,需要申请` ohos.permission.WRITE_AUDIO`权限,该权限为`system_basic`等级;以及应用在申请截取屏幕图像功能,该权限为`system_core`等级,需要申请` ohos.permission.CAPTURE_SCREEN`权限。此时需要将相关权限项配置到[HarmonyAppProvision配置文件](app-provision-structure.md)的`acl`字段中。 @@ -124,8 +124,9 @@ 1. 申请`ohos.permission.READ_CALENDAR`权限,配置方式请参见[访问控制授权申请](#Stage模型)。 2. 可以在UIAbility的onWindowStageCreate()回调中调用[requestPermissionsFromUser()](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)接口动态申请权限,也可以根据业务需要在UI界面中向用户申请授权。根据[requestPermissionsFromUser()](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)接口返回值判断是否已获取目标权限,如果当前已经获取权限,则可以继续正常访问目标接口。 + 在UIAbility中动态申请授权。 - + ```typescript import UIAbility from '@ohos.app.ability.UIAbility'; import Window from '@ohos.window'; @@ -157,7 +158,7 @@ } } ``` - + 在UI界面中向用户申请授权。 ```typescript import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; @@ -216,40 +217,10 @@ onWindowStageCreate() { - `bundleName`字段配置为应用的Bundle名称。 - `app_signature`字段配置为应用的指纹信息。指纹信息的配置参见[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md#install_list_capabilityjson中配置)。 -- `permissions`字段中name配置为需要预授权的`user_grant`类型的权限名;`permissions`字段中`userCancellable`表示为用户是否能够取消该预授权,配置为true,表示支持用户取消授权,为false则表示不支持用户取消授权。 +- `permissions`字段中`name`配置为需要预授权的`user_grant`类型的权限名;`permissions`字段中`userCancellable`表示为用户是否能够取消该预授权,配置为true,表示支持用户取消授权,为false则表示不支持用户取消授权。 -<<<<<<< .mine > 说明:当前仅支持预置应用配置该文件。 - - - - - - - - - - - - -======= - //ability的onWindowStageCreate生命周期 - onWindowStageCreate() { - var context = this.context - var AtManager = abilityAccessCtrl.createAtManager(); - //requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 - AtManager.requestPermissionsFromUser(context, ["ohos.permission.CAMERA"]).then((data) => { - console.log("data type:" + typeof(data)); - console.log("data:" + data); - console.log("data permissions:" + data.permissions); - console.log("data result:" + data.authResults); - }).catch((err) => { - console.error('Failed to start ability', err.code); - }) - } ->>>>>>> .theirs - ```json [ // ... -- GitLab