鸿蒙权限授权弹窗(推荐)

一.背景

之前系统校验权限没有通过的话是采用携带包名跳转系统设置页面进行权限开启(对用户不友好,现在新推出的授权弹窗,在当前app弹出,也可以更好的监听权限授权是否完成的回调)

二.代码

我这里以位置权限为例(校验位置和精确位置)两个权限申请
TypeScript 复制代码
  Text('去开启')
          .width('50%')
          .fontColor('#006BFF')
          .fontSize(this.changeFontSize - 2)
          .textAlign(TextAlign.Center)
          .onClick(() => {
            let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
            let context: Context = this.getUIContext().getHostContext() as common.UIAbilityContext;
            this.controller?.close()
            atManager.requestPermissionOnSetting(context,
              ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'])
              .then((data: Array<abilityAccessCtrl.GrantStatus>) => {
                // 如果是一个权限替换为这行代码
                // if (data[0] === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) 

                // 多个权限校验
                const allGranted = data.every((res) => res === 0);
                if (allGranted) {
                  //通过校验事件 申请权限成功
                } else {
//没有通过
                  promptAction.showToast({
                    message: '请打开位置权限(包括精确位置)',
                    duration: 2000,
                    alignment: Alignment.Center
                  })

                }
              })
              .catch((err: BusinessError) => {
                // hilog.error(0x0000, 'testTag', `data: ${JSON.stringify(err)}`);
              });
            //旧版挑战申请
            // this.openPermissionSettingsInSettingPage()
          })
相关推荐
HwJack204 小时前
HarmonyOS APP开发玩转鸿蒙 HSP:打造高复用“乐高模块”的底层逻辑
华为·harmonyos
●VON11 小时前
28个Token重构鸿蒙App:企业级设计系统的搭建实践
华为·重构·harmonyos
求学中--12 小时前
AppStorage和LocalStorage有什么区别?鸿蒙全局状态管理方案选型指南
华为·harmonyos
求学中--15 小时前
鸿蒙状态管理一文通:@State/@Prop/@Link/@Provide四大装饰器,15分钟彻底搞懂
华为·harmonyos
阿钱真强道16 小时前
19 小凌派 rk2206 鸿蒙 LiteOS-M 任务详解
华为·鸿蒙·任务·liteos·详解·rk2206·小凌派
阿钱真强道16 小时前
18 小凌派 rk2206 鸿蒙 liteos 如何通过修改配置文件,编译不通的案例
华为·鸿蒙·编译·案例·liteos·rk2206
nashane16 小时前
HarmonyOS 6学习:HWAsan监测开启后应用崩溃的终极解决方案
学习·华为·harmonyos·harmonyos 5
Exploring16 小时前
实测 Vibe Coding:快速开发 HarmonyOS 玩 Android 客户端
harmonyos
UnicornDev16 小时前
【Flutter x HarmonyOS 6】魔方计时APP——记录页面的UI设计
flutter·ui·华为·harmonyos·鸿蒙
Swift社区17 小时前
鸿蒙 PC + 手机 + 平板:一次真正的多端应用实战
智能手机·电脑·harmonyos