如何使用第三方库中的@pura/harmony-utils(V1.3.3)申请授权工具类二
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 **********'; import { LogUtil, PermissionUtil, ToastUtil, WantUtil } from '@pura/harmony-utils'; import { BusinessError } from **********'; @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##数码相机##
#鸿蒙#