写点什么

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

作者:小赵学鸿蒙
  • 2025-06-16
    湖北
  • 本文字数:2509 字

    阅读完需:约 8 分钟

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';

@Stylesfunction btnStyle() { .width('90%') .margin({ top: 10, bottom: 5 })}
@Entry@Componentstruct 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##数码相机 ##

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2025-05-29 加入

还未添加个人简介

评论

发布
暂无评论
如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二_三方SDK_小赵学鸿蒙_InfoQ写作社区