更新记录
1.0.1(2026-03-19)
- 修复用户点击 拒绝且不再提醒 后,再次调用 会弹出顶部权限说明弹窗 【当前修改为已经拒绝不要在提示后,无法调用起授权弹窗时不弹出弹窗】
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.vue 的 onLaunch 中)调用初始化方法:
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>
注意事项
-
初始化监听:务必在应用启动时调用
authPermissionsInit()方法,否则权限申请时不会显示提示弹窗。 -
权限声明:使用权限前,需要在
AndroidManifest.xml中声明相应的权限。 -
用户拒绝处理:当用户勾选"不再询问"并拒绝权限时,应引导用户前往系统设置页面手动开启权限。
-
权限说明:申请权限时,建议提供清晰的说明文字,告知用户为什么需要该权限。
-
平台限制:此插件仅支持 Android 和 Harmony 平台,在其他平台上调用可能无效。
开发文档
更新日志
v1.0.0
- 初始版本发布
- 支持 Android 和 Harmony 平台权限管理
- 支持权限申请时同步显示说明弹窗
技术支持
如有问题或建议,请通过以下方式获取帮助:
- 查看 uni-app 官方文档
- 在插件市场提交问题反馈

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 2135
赞赏 5
下载 11481405
赞赏 1881
赞赏
京公网安备:11010802035340号