面向插件作者,说明如何将本插件提交到 DCloud 插件市场,以及后台各字段的填写参考。
package.json 中 id、version、description、keywords 已填写dcloudext.type 为 utsdcloudext.declaration 中 ads / data / permissions 已如实填写uni_modules.platforms 中各端支持情况准确(vue3=y,H5/小程序=x)readme.md 完整(安装、API、权限、FAQ)使用规范.md、权限配置说明.md、changelog.md 已更新index.d.ts 与 index.js 导出一致BLUETOOTH_CONNECT / BLUETOOTH_SCANREAD_MEDIA_IMAGES 自动映射overlay)、修改系统设置(writeSettings)跳转设置页openPermissionSettings('bluetooth') 引导文案正确module.json5)restricted / 9020003uni_modules/m-permission-manager 目录(或打包 zip)| 字段 | 填写内容 |
|---|---|
| 插件名称 | m-permission-manager 跨端权限管理 |
| 插件 ID | m-permission-manager |
| 插件类型 | UTS 插件 |
| 价格 | 免费(或按实际定价) |
| 版本号 | 与 package.json → version 一致,如 1.0.0 |
m-permission-manager - uni-app 跨端权限管理(Android/iOS/鸿蒙)
UTS 权限插件,Android / iOS / Harmony 三端统一 API,检查与申请运行时权限,支持跳转系统设置。
m-permission-manager 是 uni-app Vue3 跨端权限管理 UTS 插件,支持 Android、iOS、Harmony 三端。
【核心能力】
· 17 种统一权限 Key,三端通用命名
· 同步 / 异步检查权限状态
· 单个 / 批量申请权限
· 按权限类型跳转系统设置页
· 获取当前平台支持的权限列表
【平台支持】
· Android:17 项权限(含悬浮窗、短信、电话等 Android 专属)
· iOS:10 项通用权限(相机、相册、定位、麦克风、蓝牙、通讯录等)
· Harmony:10 项通用权限(默认 5 项 normal 可直接安装,相册/通讯录需 ACL)
【集成方式】
1. 导入 uni_modules 插件
2. 在宿主 manifest.json(Android/iOS)及鸿蒙 module.json5 中声明所需权限
3. 使用 @/utils/permission-manager Promise 封装或直接调用 UTS API
详细权限配置见插件内《权限配置说明.md》,集成规范见《使用规范.md》。
权限, permission, 运行时权限, 蓝牙, 相机, 定位, Android, iOS, Harmony, 鸿蒙, UTS
可直接粘贴以下内容,或填写插件 readme 链接:
【快速开始】
1. 从插件市场导入 m-permission-manager 到项目 uni_modules 目录
2. 在 manifest.json 中声明宿主所需权限(Android permissions / iOS privacyDescription)
鸿蒙端见插件 utssdk/app-harmony/module.json5,详见《权限配置说明.md》
3. 重新制作自定义基座或云打包(UTS 插件不支持标准基座)
4. 在代码中调用:
import {
checkPermission,
requestPermission,
openPermissionSettings,
} from '@/utils/permission-manager'
const result = await checkPermission('camera')
const granted = await requestPermission('camera')
if (!granted) {
await openPermissionSettings('camera')
}
【重要说明】
· 仅支持 App 端(Android / iOS / Harmony),不支持 H5 与小程序
· 插件负责运行时检查与申请,宿主仍需在 manifest 中声明静态权限
· iOS 蓝牙需在 privacyDescription 中配置 NSBluetoothAlwaysUsageDescription
· 鸿蒙相册/通讯录为 system_basic 权限,默认调试包未声明,需 ACL 签名后启用
完整文档:
· readme.md — API 与快速开始
· 使用规范.md — 集成约束与推荐流程
· 权限配置说明.md — 三端权限文件配置详解
dcloudext.declaration 对应项)| 字段 | 填写内容 |
|---|---|
| 是否含广告 | 无 |
| 是否采集数据 | 不上传任何用户数据,仅在本地检查与申请系统权限 |
| 权限说明 | Android:宿主 manifest 声明对应 android.permission.*;iOS:宿主 manifest 声明 NSCameraUsageDescription 等 Info.plist 键;Harmony:插件 module.json5 声明 ohos.permission.*,运行时申请 |
| 平台 | 支持情况 |
|---|---|
| uni-app Vue3 | ✅ |
| uni-app Vue2 | ❌ |
| H5 | ❌ |
| 小程序 | ❌ |
| Android App | ✅(minSdk 23) |
| iOS App | ✅(min iOS 14) |
| Harmony App | ✅(API 12+) |
Q:为什么必须自定义基座?
A:本插件为 UTS 原生插件,标准基座不包含。需制作含本插件的自定义基座或云打包。
Q:H5 能用吗?
A:不支持。仅 App 端(Android / iOS / Harmony)。
Q:安装插件后还需要配置权限吗?
A:需要。Android / iOS 必须在宿主 manifest.json 中声明静态权限与隐私说明;鸿蒙由插件 module.json5 合并,但 ACL 权限需额外签名。详见《权限配置说明.md》。
Q:三端权限 Key 一样吗?
A:统一使用 camera、microphone、location、bluetooth 等 Key,插件内部映射到各平台原生权限。部分 Key 仅 Android 支持(如 overlay、sms),调用时会返回 unsupported。
Q:iOS 蓝牙在 App 设置里找不到?
A:需在 manifest 配置 NSBluetoothAlwaysUsageDescription 并重新打包,且 App 需曾触发蓝牙权限弹窗。若 App 设置页无该项,请前往「设置 → 隐私与安全性 → 蓝牙」。系统蓝牙开关在「设置 → 蓝牙」,与应用授权无关。
Q:鸿蒙相册权限申请失败?
A:默认 module.json5 仅含 5 项 normal 权限,未声明相册读写。相册选图推荐 uni.chooseImage;若必须申请媒体权限,需用 module.full.json5 覆盖并配置 ACL 签名。
Q:用户永久拒绝后怎么办?
A:调用 openPermissionSettings(permissionKey) 跳转对应系统设置页,配合 getPermissionSettingsGuide() 展示引导文案。
遵循 语义化版本:
| 变更类型 | 版本 bump | 示例 |
|---|---|---|
| 不兼容 API 变更 | major | 2.0.0 |
| 新增功能(兼容) | minor | 1.1.0 |
| Bug 修复 | patch | 1.0.1 |
每次发版同步更新 package.json → version 和 changelog.md。
发布前请在 package.json → dcloudext.contact.qq 填写维护者 QQ,或在插件市场后台配置联系方式。