Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Tonvia
Docs
提交
1ec6673f
D
Docs
项目概览
Tonvia
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1ec6673f
编写于
12月 28, 2022
作者:
zyjhandsome
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化一些描述
Signed-off-by:
zyjhandsome
<
zyjhandsome@126.com
>
上级
c1f82d5c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
37 deletion
+8
-37
zh-cn/application-dev/security/accesstoken-guidelines.md
zh-cn/application-dev/security/accesstoken-guidelines.md
+8
-37
未找到文件。
zh-cn/application-dev/security/accesstoken-guidelines.md
浏览文件 @
1ec6673f
...
...
@@ -7,7 +7,7 @@
本文将从如下场景分别介绍:
-
[
配置文件权限声明
](
#配置文件权限声明
)
-
[
ACL
权限声明
](
#ACL权限
声明
)
-
[
ACL
方式声明
](
#ACL方式
声明
)
-
[
向用户申请授权
](
#向用户申请授权
)
-
[
user_grant权限预授权
](
#user_grant权限预授权
)
...
...
@@ -26,7 +26,7 @@
| ability | 否 | 标识需要使用到该权限的Ability,标签为数组形式。
<br/>
**适用模型:**
FA模型 |
| when | 否 | 标识权限使用的时机,值为
`inuse/always`
。
<br
/>
- inuse:表示为仅允许前台使用。
<br
/>
- 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
[
//
...
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录