提交 1ec6673f 编写于 作者: zyjhandsome's avatar zyjhandsome

优化一些描述

Signed-off-by: zyjhandsome's avatarzyjhandsome <zyjhandsome@126.com>
上级 c1f82d5c
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
本文将从如下场景分别介绍: 本文将从如下场景分别介绍:
- [配置文件权限声明](#配置文件权限声明) - [配置文件权限声明](#配置文件权限声明)
- [ACL权限声明](#ACL权限声明) - [ACL方式声明](#ACL方式声明)
- [向用户申请授权](#向用户申请授权) - [向用户申请授权](#向用户申请授权)
- [user_grant权限预授权](#user_grant权限预授权) - [user_grant权限预授权](#user_grant权限预授权)
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
| ability | 否 | 标识需要使用到该权限的Ability,标签为数组形式。<br/>**适用模型:**FA模型 | | ability | 否 | 标识需要使用到该权限的Ability,标签为数组形式。<br/>**适用模型:**FA模型 |
| when | 否 | 标识权限使用的时机,值为`inuse/always`<br />- inuse:表示为仅允许前台使用。<br />- always:表示前后台都可使用。 | | when | 否 | 标识权限使用的时机,值为`inuse/always`<br />- inuse:表示为仅允许前台使用。<br />- always:表示前后台都可使用。 |
### Stage模型 ### Stage模型配置
使用Stage模型的应用,需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中声明权限。 使用Stage模型的应用,需要在[module.json5配置文件](../quick-start/module-configuration-file.md)中声明权限。
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
} }
``` ```
### FA模型 ### FA模型配置
使用FA模型的应用,需要在config.json配置文件中声明权限。 使用FA模型的应用,需要在config.json配置文件中声明权限。
...@@ -94,7 +94,7 @@ ...@@ -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`字段中。 应用在申请`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 @@ ...@@ -124,8 +124,9 @@
1. 申请`ohos.permission.READ_CALENDAR`权限,配置方式请参见[访问控制授权申请](#Stage模型) 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)接口返回值判断是否已获取目标权限,如果当前已经获取权限,则可以继续正常访问目标接口。 2. 可以在UIAbility的onWindowStageCreate()回调中调用[requestPermissionsFromUser()](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)接口动态申请权限,也可以根据业务需要在UI界面中向用户申请授权。根据[requestPermissionsFromUser()](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9)接口返回值判断是否已获取目标权限,如果当前已经获取权限,则可以继续正常访问目标接口。
在UIAbility中动态申请授权。 在UIAbility中动态申请授权。
```typescript ```typescript
import UIAbility from '@ohos.app.ability.UIAbility'; import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window'; import Window from '@ohos.window';
...@@ -157,7 +158,7 @@ ...@@ -157,7 +158,7 @@
} }
} }
``` ```
在UI界面中向用户申请授权。 在UI界面中向用户申请授权。
```typescript ```typescript
import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
...@@ -216,40 +217,10 @@ onWindowStageCreate() { ...@@ -216,40 +217,10 @@ onWindowStageCreate() {
- `bundleName`字段配置为应用的Bundle名称。 - `bundleName`字段配置为应用的Bundle名称。
- `app_signature`字段配置为应用的指纹信息。指纹信息的配置参见[应用特权配置指南](../../device-dev/subsystems/subsys-app-privilege-config-guide.md#install_list_capabilityjson中配置) - `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 ```json
[ [
// ... // ...
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册