发布指南.md 8.1 KB

m-permission-manager 插件发布指南

面向插件作者,说明如何将本插件提交到 DCloud 插件市场,以及后台各字段的填写参考。


发布前检查清单

代码与文档

  • package.jsonidversiondescriptionkeywords 已填写
  • dcloudext.typeuts
  • dcloudext.declaration 中 ads / data / permissions 已如实填写
  • uni_modules.platforms 中各端支持情况准确(vue3=y,H5/小程序=x)
  • readme.md 完整(安装、API、权限、FAQ)
  • 使用规范.md权限配置说明.mdchangelog.md 已更新
  • index.d.tsindex.js 导出一致

功能验证

  • Android 真机:相机 / 麦克风 / 定位 / 蓝牙申请与检查
  • Android 12+ 真机:蓝牙 BLUETOOTH_CONNECT / BLUETOOTH_SCAN
  • Android 13+ 真机:相册 READ_MEDIA_IMAGES 自动映射
  • Android 真机:悬浮窗(overlay)、修改系统设置(writeSettings)跳转设置页
  • iOS 14+ 真机:相机 / 麦克风 / 定位 / 蓝牙 / 相册
  • iOS 真机:拒绝后 openPermissionSettings('bluetooth') 引导文案正确
  • Harmony API 12+ 真机:5 项 normal 权限申请(默认 module.json5
  • Harmony 真机:相册 ACL 未声明时返回 restricted / 9020003
  • 拒绝授权时引导跳转系统设置
  • H5 环境明确不可用(9020001)

打包验证

  • 自定义基座可正常运行
  • 云打包 / 本地打包正式包可正常运行
  • 修改 UTS 代码后已重新制作基座

提交到插件市场

  1. 登录 DCloud 插件市场
  2. 进入 我的插件发布插件
  3. 插件类型选择 UTS 插件
  4. 上传 uni_modules/m-permission-manager 目录(或打包 zip)
  5. 按下方表格填写市场展示信息

市场后台填写参考

基本信息

字段 填写内容
插件名称 m-permission-manager 跨端权限管理
插件 ID m-permission-manager
插件类型 UTS 插件
价格 免费(或按实际定价)
版本号 package.jsonversion 一致,如 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.*,运行时申请

平台支持(与 package.json 一致)

平台 支持情况
uni-app Vue3
uni-app Vue2
H5
小程序
Android App ✅(minSdk 23)
iOS App ✅(min iOS 14)
Harmony App ✅(API 12+)

截图建议(4–6 张)

  1. 权限演示页截图(三端权限列表与状态)
  2. Promise 封装调用代码示例
  3. Android 系统权限弹窗(相机 / 蓝牙)
  4. iOS 隐私授权弹窗
  5. manifest.json 权限配置示例
  6. 三端权限支持对照表

市场 FAQ 预填

Q:为什么必须自定义基座?
A:本插件为 UTS 原生插件,标准基座不包含。需制作含本插件的自定义基座或云打包。

Q:H5 能用吗?
A:不支持。仅 App 端(Android / iOS / Harmony)。

Q:安装插件后还需要配置权限吗?
A:需要。Android / iOS 必须在宿主 manifest.json 中声明静态权限与隐私说明;鸿蒙由插件 module.json5 合并,但 ACL 权限需额外签名。详见《权限配置说明.md》。

Q:三端权限 Key 一样吗?
A:统一使用 cameramicrophonelocationbluetooth 等 Key,插件内部映射到各平台原生权限。部分 Key 仅 Android 支持(如 overlaysms),调用时会返回 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.jsonversionchangelog.md


联系方式

发布前请在 package.jsondcloudext.contact.qq 填写维护者 QQ,或在插件市场后台配置联系方式。


参考链接