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

#鸿蒙#
全部评论

相关推荐

流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务