目标:使用权限请求工具,在录音页面实现请求权限,无权限不可进入
// 定义需要请求的权限数组
permissions: Permissions[] = ['ohos.permission.MICROPHONE']
// 定义弹窗配置选项
confirmConfig: promptAction.ShowDialogOptions = {
title: "温馨提示", // 弹窗标题
message: "未授权使用麦克风将无法使用该面试录音功能,是否前往设置进行授权?", // 弹窗消息内容
buttons: [ // 弹窗按钮配置
{ text: '离开', color: $r('app.color.common_gray_01') }, // 第一个按钮配置
{ text: '去授权', color: $r('app.color.black') } // 第二个按钮配置
]
}
// 请求权限的方法
async getPermission () {
try {
// 第一次请求权限
const isOk = await permission.requestPermissions(this.permissions)
if (isOk) return // 如果用户授权,则直接返回
// 显示提示弹窗
const confirm = await promptAction.showDialog(this.confirmConfig)
if (confirm.index === 1) { // 如果用户点击了“去授权”按钮
const isOk2 = await permission.openPermissionSetting(this.permissions)
if (isOk2) return // 如果在设置中授权成功,则直接返回
}
// 如果最终没有获取到权限,则返回上一页
router.back()
} catch (e) {
// 显示错误提示
promptAction.showToast({ message: '未授权' })
// 返回上一页
router.back()
}
}
// 页面即将显示时调用此方法
aboutToAppear(): void {
this.getPermission() // 调用权限请求方法
}