更新记录

1.0.1(2026-03-19)

  1. 修复用户点击 拒绝且不再提醒 后,再次调用 会弹出顶部权限说明弹窗 【当前修改为已经拒绝不要在提示后,无法调用起授权弹窗时不弹出弹窗】

1.0.0(2026-03-19)

新增功能

  • 新增 authPermissions 权限管理类
    • checkSystemPermissionGranted() - 判断是否拥有指定权限
    • getSystemPermissionDenied() - 获取被拒绝的权限列表
    • requestSystemPermission() - 申请权限(支持自定义提示信息)
    • gotoSystemPermissionActivity() - 跳转到系统权限设置页面
  • 新增 authPermissionsInit() 初始化方法,用于监听权限申请过程
  • 支持 Android 平台权限管理
  • 支持 Harmony 平台权限管理
  • 支持权限申请时同步显示说明弹窗

特性说明

  • 权限申请过程中会在屏幕顶部显示提示弹窗,提升用户体验
  • 支持自定义弹窗标题和提示内容
  • 支持检测用户是否勾选"不再询问"选项
  • 完整的权限生命周期管理

平台兼容性

uni-app(4.01)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × - - - × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x(4.01)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × - ×

wly-android-auth

插件介绍

wly-android-auth 是一个基于 UTS 开发的 Android 和 Harmony 平台权限管理插件,提供了完整的权限判断、申请和管理功能。该插件支持在权限申请时同步显示说明弹窗,提升用户体验。

功能特性

  • ✅ 权限状态判断
  • ✅ 权限申请(支持自定义提示信息)
  • ✅ 权限拒绝检测
  • ✅ 跳转到系统权限设置页面
  • ✅ 权限申请过程监听
  • ✅ 申请时同步显示说明弹窗

平台支持

平台 支持情况
Android ✅ 支持
Harmony ✅ 支持
iOS ❌ 不支持
Web ❌ 不支持
小程序 ❌ 不支持

环境要求

  • HBuilderX: ^3.6.8
  • uni-app: ^3.1.0
  • uni-app-x: ^3.1.0

安装方式

在 HBuilderX 中,通过插件市场导入 wly-android-auth 插件到项目的 uni_modules 目录。

使用方法

1. 引入插件

import { authPermissions, authPermissionsInit } from '@/uni_modules/wly-android-auth'

2. 初始化权限监听

在应用启动时(如 App.vueonLaunch 中)调用初始化方法:

import { authPermissionsInit } from '@/uni_modules/wly-android-auth'

export default {
  onLaunch() {
    authPermissionsInit()
  }
}

3. 使用权限管理功能

3.1 判断是否拥有权限

import { authPermissions } from '@/uni_modules/wly-android-auth'

const hasPermission = authPermissions.checkSystemPermissionGranted([
  'android.permission.CAMERA'
])

if (hasPermission) {
  console.log('已拥有相机权限')
} else {
  console.log('未拥有相机权限')
}

3.2 获取被拒绝的权限列表

import { authPermissions } from '@/uni_modules/wly-android-auth'

const deniedPermissions = authPermissions.getSystemPermissionDenied([
  'android.permission.CAMERA',
  'android.permission.READ_EXTERNAL_STORAGE'
])

console.log('被拒绝的权限:', deniedPermissions)

3.3 申请权限

import { authPermissions } from '@/uni_modules/wly-android-auth'

authPermissions.requestSystemPermission(
  ['android.permission.CAMERA'],
  '相机权限申请',
  '我们需要相机权限来拍摄照片,请您授权。',
  (doNotAskAgain, grantedList) => {
    console.log('权限授予成功', grantedList)
    console.log('是否勾选了"不再询问"', doNotAskAgain)
  },
  (doNotAskAgain, grantedList) => {
    console.log('权限授予失败', grantedList)
    console.log('是否勾选了"不再询问"', doNotAskAgain)
  }
)

3.4 跳转到系统权限设置页面

import { authPermissions } from '@/uni_modules/wly-android-auth'

authPermissions.gotoSystemPermissionActivity([
  'android.permission.CAMERA'
])

API 文档

authPermissions 类

权限管理类,提供静态方法进行权限相关操作。

方法列表

方法名 参数 返回值 说明
checkSystemPermissionGranted permission: Array<string> boolean 判断是否拥有指定权限
getSystemPermissionDenied permission: Array<string> Array<string> 获取被拒绝的权限列表
requestSystemPermission permission: Array<string>, title: string, tips: string, callbackOk: Function, callbackNo: Function void 申请权限
gotoSystemPermissionActivity permission: Array<string> void 跳转到系统权限设置页面

方法详情

checkSystemPermissionGranted(permission)

判断是否拥有指定的权限。

参数说明:

  • permission: 权限名称数组,如 ['android.permission.CAMERA']

返回值:

  • true: 已拥有权限
  • false: 未拥有权限
getSystemPermissionDenied(permission)

获取被用户拒绝的权限列表。

参数说明:

  • permission: 权限名称数组

返回值:

  • 被拒绝的权限名称数组
requestSystemPermission(permission, title, tips, callbackOk, callbackNo)

申请权限,申请过程中会在顶部显示提示弹窗。

参数说明:

  • permission: 权限名称数组
  • title: 提示弹窗的标题
  • tips: 提示弹窗的内容说明
  • callbackOk: 权限授予成功的回调函数
    • doNotAskAgain: 是否勾选了"不再询问"
    • grantedList: 已授予的权限列表
  • callbackNo: 权限授予失败的回调函数
    • doNotAskAgain: 是否勾选了"不再询问"
    • grantedList: 已授予的权限列表
gotoSystemPermissionActivity(permission)

跳转到系统权限设置页面,用于引导用户手动开启权限。

参数说明:

  • permission: 权限名称数组

authPermissionsInit()

初始化权限申请监听器,需要在应用启动时调用。此方法会监听权限申请过程,并在申请时显示提示弹窗。

常用权限列表

权限名称 说明
android.permission.CAMERA 相机权限
android.permission.READ_EXTERNAL_STORAGE 读取外部存储
android.permission.WRITE_EXTERNAL_STORAGE 写入外部存储
android.permission.ACCESS_FINE_LOCATION 精确定位
android.permission.ACCESS_COARSE_LOCATION 粗略定位
android.permission.RECORD_AUDIO 录音权限
android.permission.READ_PHONE_STATE 读取手机状态
android.permission.BLUETOOTH 蓝牙权限

完整示例

<template>
  <view class="container">
    <button @click="checkPermission">检查相机权限</button>
    <button @click="requestPermission">申请相机权限</button>
    <button @click="gotoSettings">跳转设置页面</button>
  </view>
</template>

<script>
import { authPermissions } from '@/uni_modules/wly-android-auth'

export default {
  methods: {
    checkPermission() {
      const hasPermission = authPermissions.checkSystemPermissionGranted([
        'android.permission.CAMERA'
      ])

      if (hasPermission) {
        uni.showToast({
          title: '已拥有相机权限',
          icon: 'success'
        })
      } else {
        uni.showToast({
          title: '未拥有相机权限',
          icon: 'none'
        })
      }
    },

    requestPermission() {
      authPermissions.requestSystemPermission(
        ['android.permission.CAMERA'],
        '相机权限申请',
        '我们需要相机权限来拍摄照片,请您授权。',
        (doNotAskAgain, grantedList) => {
          uni.showToast({
            title: '权限授予成功',
            icon: 'success'
          })
        },
        (doNotAskAgain, grantedList) => {
          if (doNotAskAgain) {
            uni.showModal({
              title: '提示',
              content: '您已拒绝相机权限,如需使用请前往设置页面手动开启',
              success: (res) => {
                if (res.confirm) {
                  this.gotoSettings()
                }
              }
            })
          } else {
            uni.showToast({
              title: '权限授予失败',
              icon: 'none'
            })
          }
        }
      )
    },

    gotoSettings() {
      authPermissions.gotoSystemPermissionActivity([
        'android.permission.CAMERA'
      ])
    }
  }
}
</script>

注意事项

  1. 初始化监听:务必在应用启动时调用 authPermissionsInit() 方法,否则权限申请时不会显示提示弹窗。

  2. 权限声明:使用权限前,需要在 AndroidManifest.xml 中声明相应的权限。

  3. 用户拒绝处理:当用户勾选"不再询问"并拒绝权限时,应引导用户前往系统设置页面手动开启权限。

  4. 权限说明:申请权限时,建议提供清晰的说明文字,告知用户为什么需要该权限。

  5. 平台限制:此插件仅支持 Android 和 Harmony 平台,在其他平台上调用可能无效。

开发文档

更新日志

v1.0.0

  • 初始版本发布
  • 支持 Android 和 Harmony 平台权限管理
  • 支持权限申请时同步显示说明弹窗

技术支持

如有问题或建议,请通过以下方式获取帮助:

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。