如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类一
本指南介绍如何利用 @pura/harmony-utils
三方库简化 OpenHarmony 应用中的权限检查和申请流程。
1. 安装依赖库
首先,需要在您的 OpenHarmony 项目中安装 @pura/harmony-utils
库。在项目根目录下执行以下命令:
ohpm install @pura/harmony-utils
安装验证: 安装完成后,请检查项目的 oh-package.json5
文件。如果您在该文件的 dependencies
部分看到类似下面的代码片段,即表示库已成功安装:
2. 配置应用权限
为了在应用中使用特定的设备能力(如相机、麦克风、位置等),必须在应用的配置文件 module.json5
中声明相应的权限。请注意,部分敏感权限(如 CAMERA
, MICROPHONE
, LOCATION
等)除了在此声明外,还需要在应用市场文档中心提交权限使用说明文档并通过审批。
将以下 requestPermissions
配置添加到您的 module.json5
文件中:
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
},
{
"name": "ohos.permission.CAMERA",
"reason": "$string:Webcampermissions",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
},
{
"name": "ohos.permission.MICROPHONE",
"reason": "$string:Microphonepermissions",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
},
{
"name": "ohos.permission.LOCATION",
"reason": "$string:Locationpermissions",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
},
{
"name": "ohos.permission.APPROXIMATELY_LOCATION",
"reason": "$string:locationreson",
"usedScene": {
"abilities": ["EntryAbility"]
}
},
{
"name": "ohos.permission.READ_MEDIA",
"reason": "$string:ReadMediaFiles",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
},
{
"name": "ohos.permission.READ_CALENDAR",
"reason": "$string:Calendarpermissions",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
}
],
配置权限说明字符串
在 string.json
文件中,为上面权限配置中使用的 reason
键(例如 $string:Webcampermissions
)提供对应的说明文字。这些文字会展示给用户,解释为什么需要该权限:
{
"name": "Webcampermissions",
"value": "需要摄像头权限进行拍照"
},{
"name": "Microphonepermissions",
"value": "需要麦克风权限进行录音"
},{
"name": "Locationpermissions",
"value": "需要位置权限提供定位服务"
},{
"name": "ReadMediaFiles",
"value": "需要读取媒体文件权限"
},{
"name": "Calendarpermissions",
"value": "需要读取日历权限"
},{
"name": "locationreson",
"value": "获取当前位置"
}
3. 检查权限状态(示例:相机权限)
在需要使用权限的功能点(例如打开相机前),可以使用 PermissionUtil.checkPermissions
方法来检查用户是否已经授予了该权限。该方法返回一个 Promise
,解析结果为布尔值 (true
表示已授权,false
表示未授权)。
let p: Permissions = 'ohos.permission.CAMERA'; //相机
PermissionUtil.checkPermissions(p).then((result) => {
ToastUtil.showToast(`检测是否授权,结果:${result}`);
})
4. 检查并申请授权(示例:相机权限)
更常见的场景是:先检查权限,如果未授权,则向用户弹出申请弹窗。PermissionUtil.checkRequestPermissions
方法封装了这个流程。它返回一个 Promise
,解析结果为布尔值,表示最终用户是否授予了权限。
let p: Permissions = 'ohos.permission.CAMERA'; //相机
PermissionUtil.checkRequestPermissions(p).then((grant) => {
ToastUtil.showToast(`检测并申请授权,结果:${grant}`);
if (!grant) {
WantUtil.toAppSetting(); //拒绝权限,跳转APP设置页面
}
})
关键点说明:
checkRequestPermissions
会先检查权限状态。- 如果未授权,它会自动弹出系统标准的权限申请对话框。
- 用户操作(允许或拒绝)后,Promise 解析出最终结果 (
grant
)。 - 如果结果是
false
,通常意味着用户拒绝了权限(可能包含“禁止后不再询问”)。此时引导用户到应用设置页面 (WantUtil.toAppSetting()
) 是常见的做法,让用户在那里手动开启权限。
本文档所使用类的源地址链接entry/src/main/ets/pages/utils/PermissionUtilPage.ets · 桃花镇童长老/harmony-utils - Gitee.com****
本文档所介绍的第三方库源地址链接OpenHarmony三方库中心仓
##三方SDK##数码相机##
- 0回答
- 0粉丝
- 0关注
- 如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二
- 如何使用第三方库中的picker_utils (API12) PickerUtil类
- 常用的ArkTS第三方库
- ArkTS第三方库的语法与使用详解
- 开源第三方库资源汇总
- 最受欢迎的三方库之harmony-utils
- 如何发布第三方库到 OpenHarmony,并提交一个PR
- harmony-utils之PermissionUtil,授权相关工具类
- 上传PR到第三方库可能遇到的问题
- 鸿蒙Flutter实战:05-使用第三方插件
- 第十四课:HarmonyOS Next第三方库集成指南
- 鸿蒙--如何发布一个三方库
- harmony-utils之KvUtil,键值型数据库工具类
- OpenHarmony三方库使用指南
- harmony-utils之DateUtil,日期工具类