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

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##数码相机##

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

相关阅读更多精彩内容

友情链接更多精彩内容