如何使用第三方库中的@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##数码相机##

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容