0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二

jf_82050620 来源:jf_82050620 作者:jf_82050620 2025-06-24 17:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

5.申请授权(可组合申请)接上文

let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissions(p).then((grant) = > {
     if (grant) {
       ToastUtil.showToast(`申请授权,已通过...`);
     }
})

如果第一次申请用户没有同意,可二次申请

PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
   ToastUtil.showToast(`申请授权,结果:${result}`);
});

6.申请授权,拒绝后可二次申请

let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
PermissionUtil.requestPermissionsEasy(p).then((result) = > {
    ToastUtil.showToast(`申请授权,结果:${result}`);
})

7.完整UI代码

import { abilityAccessCtrl, Permissions } from '@kit.AbilityKit';
import { LogUtil, PermissionUtil, ToastUtil, WantUtil } from '@pura/harmony-utils';
import { BusinessError } from '@kit.BasicServicesKit';


@Styles
function btnStyle() {
  .width('90%')
  .margin({ top: 10, bottom: 5 })
}

@Entry
@Component
struct Index {
  private scroller: Scroller = new Scroller();

  build() {
    Scroll(this.scroller) {
      Column() {
        Button("checkPermissions()")
          .btnStyle()
          .onClick(() = > {
            let p: Permissions = 'ohos.permission.CAMERA'; //相机
            PermissionUtil.checkPermissions(p).then((result) = > {
              ToastUtil.showToast(`检测是否授权,结果:${result}`);
            })
          })
        Button("checkRequestPermissions()")
          .btnStyle()
          .onClick(() = > {
            let p: Permissions = 'ohos.permission.CAMERA'; //相机
            PermissionUtil.checkRequestPermissions(p).then((grant) = > {
              ToastUtil.showToast(`检测并申请授权,结果:${grant}`);
              if (!grant) {
                WantUtil.toAppSetting(); //拒绝权限,跳转APP设置页面
              }
            })
          })
        Button("requestPermissions()nrequestPermissionOnSettingEasy()")
          .labelStyle({ maxLines: 2 })
          .type(ButtonType.Normal)
          .borderRadius(10)
          .padding({ top: 10, bottom: 10 })
          .btnStyle()
          .onClick(() = > {
            let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA','ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
            PermissionUtil.requestPermissions(p).then((grant) = > {
              if (grant) {
                ToastUtil.showToast(`申请授权,已通过...`);
              } else { //拒绝权限,二次向用户申请授权
                PermissionUtil.requestPermissionOnSettingEasy(p).then((result) = > {
                  ToastUtil.showToast(`申请授权,结果:${result}`);
                });
              }
            })
          })
        Button("requestPermissionsEasy()")
          .btnStyle()
          .onClick(() = > {
            let p: Permissions[] = ['ohos.permission.ACTIVITY_MOTION', 'ohos.permission.CAMERA', 'ohos.permission.LOCATION', 'ohos.permission.APPROXIMATELY_LOCATION'];
            PermissionUtil.requestPermissionsEasy(p).then((result) = > {
              ToastUtil.showToast(`申请授权,结果:${result}`);
            })
          })
        Button("requestGlobalSwitch()")
          .btnStyle()
          .onClick(() = > {
            PermissionUtil.requestGlobalSwitch(abilityAccessCtrl.SwitchType.LOCATION).then((result) = > {
              ToastUtil.showToast(`申请结果:${result}`);
            }).catch((err: BusinessError) = > {
              ToastUtil.showToast(err.message);
              LogUtil.error(err);
            });
          })
        Button("最佳使用案例")
          .btnStyle()
          .onClick(() = > {
            let ps: Permissions[] = ['ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO'];
            PermissionUtil.requestPermissions(ps).then((result) = > {
              if (result) {
                ToastUtil.showToast(`最佳使用案例授权,已通过...`);
              } else {
                PermissionUtil.requestPermissionOnSetting(ps).then((grant) = > {
                  ToastUtil.showToast(`最佳使用案例,结果:${grant}`);
                })
              }
            })
          })
        Button("测试")
          .btnStyle()
          .onClick(() = > {
            let ps: Permissions[] = ['ohos.permission.CAMERA', 'ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO'];
            PermissionUtil.requestPermissionsEasy(ps).then((grant)= >{
              ToastUtil.showToast(`申请授权,结果:${grant}`);
            })
          })

        Blank().layoutWeight(1)
      }
      .margin({ top: 5, bottom: 5 })
    }
    .layoutWeight(1)
  }
}

注:部分权限需要在真机上使用,部分权限需要在模拟器设置进行模拟使用

本文档所使用类的源地址链接entry/src/main/ets/pages/utils/PermissionUtilPage.ets · 桃花镇童长老/harmony-utils - Gitee.com

本文档所介绍的第三方库源地址链接​OpenHarmony三方库中心仓​

##三方SDK##数码相机##

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数码相机
    +关注

    关注

    2

    文章

    445

    浏览量

    39933
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1094

    浏览量

    51220
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    harmony-utils之CacheUtil,缓存工具

    harmony-utils之CacheUtil,缓存工具
    的头像 发表于 07-04 16:36 323次阅读

    harmony-utils之DeviceUtil,设备相关工具

    harmony-utils之DeviceUtil,设备相关工具
    的头像 发表于 07-03 18:27 420次阅读

    harmony-utils之LRUCacheUtil,LRUCache缓存工具

    harmony-utils之LRUCacheUtil,LRUCache缓存工具 harmony-utils 简介与说明 harmony-utils
    的头像 发表于 07-03 18:11 387次阅读

    harmony-utils之NumberUtil,Number工具

    harmony-utils之NumberUtil,Number工具 harmony-utils 简介与说明 harmony-utils
    的头像 发表于 07-03 18:08 385次阅读

    harmony-utils之PreferencesUtil,首选项工具

    harmony-utils之PreferencesUtil,首选项工具 harmony-utils 简介与说明 [harmony-utils
    的头像 发表于 07-03 11:42 361次阅读

    harmony-utils之PreviewUtil,文件预览工具

    harmony-utils之PreviewUtil,文件预览工具 harmony-utils 简介与说明 [harmony-utils]
    的头像 发表于 07-03 11:40 376次阅读

    harmony-utils之RegexUtil,正则工具

    harmony-utils之RegexUtil,正则工具 harmony-utils 简介与说明 [harmony-utils] 一款功能
    的头像 发表于 07-03 11:38 366次阅读

    harmony-utils之SnapshotUtil,截图相关工具

    harmony-utils之SnapshotUtil,截图相关工具 harmony-utils 简介与说明 [harmony-utils]
    的头像 发表于 07-03 11:36 371次阅读

    harmony-utils之StrUtil,字符串工具

    harmony-utils之StrUtil,字符串工具 harmony-utils 简介与说明 [harmony-utils] 一款功能丰
    的头像 发表于 07-03 11:32 390次阅读

    harmony-utils之TypeUtil,类型检查工具

    harmony-utils之TypeUtil,类型检查工具 harmony-utils 简介与说明 [harmony-utils] 一款功
    的头像 发表于 06-30 17:35 383次阅读

    harmony-utils之WindowUtil,窗口相关工具

    harmony-utils之WindowUtil,窗口相关工具 harmony-utils 简介与说明 [harmony-utils] 一
    的头像 发表于 06-30 17:33 397次阅读

    harmony-utils之AuthUtil,生物认证相关工具

    # harmony-utils之AuthUtil,生物认证相关工具 ## harmony-utils 简介与说明 ------[harmony-u
    的头像 发表于 06-26 17:43 338次阅读

    harmony-utils之ArrayUtil,集合工具

    # harmony-utils之ArrayUtil,集合工具 ## harmony-utils 简介与说明 ------[harmony-util
    的头像 发表于 06-26 17:38 366次阅读

    harmony-utils之TempUtil,温度转换工具

    harmony-utils之TempUtil,温度转换工具 harmony-utils 简介与说明 [harmony-utils] 一款功
    的头像 发表于 06-26 00:50 328次阅读

    如何使用第三方的@pura/harmony-utils(V1.3.3申请授权工具

    1. 安装依赖 ohpm install @pura/harmony-utils 在oh-package.json5看到以下代码即表示安装成功 2. 配置权限 在 module.json5 文件
    的头像 发表于 06-24 17:31 430次阅读
    如何使用<b class='flag-5'>第三方</b><b class='flag-5'>库</b><b class='flag-5'>中</b>的@<b class='flag-5'>pura</b>/<b class='flag-5'>harmony-utils</b>(<b class='flag-5'>V1.3.3</b>)<b class='flag-5'>申请</b><b class='flag-5'>授权</b><b class='flag-5'>工具</b><b class='flag-5'>类</b>一