更新记录
1.0.1(2025-09-27) 下载此版本
1、增加通用评分方法,优先 iOS 应用内评分,不可用则跳转 App Store/安卓市场
1.0.0(2025-09-27) 下载此版本
1、初始版本发布
- iOS/Android App 权限判断
- iOS/Android App 动态权限申请
- Android 同步告知权限申请目的解决应用市场上架
平台兼容性
uni-app(4.81)
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
√ | √ | × | × | √ | √ | √ | √ | × |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.81)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
× | × | √ | √ | × | × |
其他
多语言 | 暗黑模式 | 宽屏模式 |
---|---|---|
√ | √ | √ |
📦 Android 与 IOS App 权限判断,权限申请,同步告知权限申请目的解决应用市场上架
一个用于 uni-app 的权限管理插件,支持:
- 单独权限判断,不会随便弹窗
- 动态权限申请,可以同步告知权限申请目的
- 权限被拒绝后,可以提示并跳转到应用权限设置界面
- 解决华为/小米等,应用市场上架被拒绝问题
📖 使用方法
import { checkIsGranted, checkRequestPermission, checkPermission } from '@/uni_modules/dh-permission/index.js';
// 检测应用是否有权限, 返回值是布尔值
let isGranted = checkIsGranted('Microphone');
// 检测应用并同步申请应用权限,同步告知权限申请目的
let isGranted = await checkRequestPermission('Microphone');
// 检测应用是否有权限, 返回值是PermissionStatus
let status = checkPermission('Microphone');
权限状态常量
let PermissionStatus = {
denied: 'denied', // 未确定是否可使用此权限,需要请求权限
granted: 'granted', // 已授权此权限
restricted: 'restricted', // 家长控制或设备策略限制
limited: 'limited', // 受限访问 - 用户只授权了部分照片
permanentlyDenied: 'permanentlyDenied', // 用户永久拒绝权限,需要引导在设置中打开
};
权限常量
let Permission = {
CameraPhotos: {
name: 'android.permission.READ_EXTERNAL_STORAGE,android.permission.CAMERA',
title: '相机/相册权限说明',
content: '便于您使用该功能上传您的照片/图片/视频及用于素材处理、与客服沟通等场景中读取相册和文件内容',
},
Camera: {
name: 'android.permission.CAMERA',
title: '相机权限说明',
content: '便于您使用该功能拍照素材处理、与客服沟通等场景中发送拍摄图片',
},
Photos: {
name: 'android.permission.READ_EXTERNAL_STORAGE',
title: '相册权限说明',
content: '便于您使用该功能上传您的照片/图片/视频及用于素材处理、与客服沟通等场景中读取相册和文件内容',
},
Microphone: {
name: 'android.permission.RECORD_AUDIO',
title: '录音权限说明',
content: '便于使用声音克隆,或者语音转文字等功能',
},
Phone: {
name: 'android.permission.READ_PHONE_STATE',
title: '电话/设备状态权限说明',
content: '用于获取唯一设备识别码IMEI,以提供统计分析服务,为用户提供更好的服务',
},
Location: {
name: 'android.permission.ACCESS_FINE_LOCATION',
title: '位置权限说明',
content: '用户获取城市位置,快速展示不同的信息,为用户提供更好的服务',
},
};
📌 特点
- 跨平台:同时支持 iOS 和 Android
- Android 多市场兼容:轮询常见应用市场,优先打开默认渠道
- 功能多样:不仅评分,还能打开应用市场查看应用详情
- 独立函数封装:采用 Native.js 编写,是纯前端 js 代码,不需要打包自定义基座。
- 扩展性:目前封装的只支持了固定几种常用权限,源码可以直接扩展
🛠 插件目录结构
uni_modules/
└── dh-permission/
├── package.json
├── index.js
└── readme.md
📜 License
MIT