更新记录
1.0.0(2026-11-05) 下载此版本
1.0.0
- 首个版本:权限检查/申请/四态闭环/批量/跳设置
平台兼容性
pk-permission · 权限套件
权限检查 / 申请 / 永久拒绝引导 / 批量申请 / 跳系统设置。纯 JS,无原生插件。
四态闭环(竞品普遍只做两态,用户点「拒绝」后页面白屏无出路):
| state | 含义 | 建议动作 |
|---|---|---|
granted |
已授权 | 直接继续 |
denied |
已拒绝但可再次弹窗 | 引导后重试 request() |
blocked |
永久拒绝(不可再弹) | 展示 guide → openSettings() |
unsupported |
当端不支持 / manifest 未声明 | 检查 manifestTip |
安装
复制 uni_modules/pk-permission 到项目 uni_modules/ 下即可。
快速开始
import pkPerm from '@/uni_modules/pk-permission/js_sdk/index.js';
const r = await pkPerm.request('location', { explain: true });
if (r.state === 'blocked') {
uni.showModal({ title: r.guide.title, content: r.guide.steps.join('\n') });
await pkPerm.openSettings();
}
方法一览(全部暴露方法)
| 方法 | 签名 | 说明 |
|---|---|---|
init |
init(opts?) |
初始化配置,幂等;任意方法首次调用时自动执行 |
check |
async check(name) → {ok,name,label,state,canAskAgain,guide} |
查询当前状态,不弹窗 |
request |
async request(name, opts?) → {ok,state,guide,message} |
申请权限;opts.explain 传 true 先弹内置说明,或传字符串自定义话术 |
requestAll |
async requestAll(names, opts?) → {allGranted,granted[],denied[],blocked[],details} |
批量串行申请(避免多弹窗竞争),返回聚合分组 |
openSettings |
async openSettings() → {ok,platform?} |
跳转本应用系统设置页(blocked 态标准出路,仅 App 端) |
supported |
async supported() → {items:[{name,label,android,ios,mp,manifestTip}]} |
全部逻辑权限清单与各端声明提示 |
describe |
async describe(name) → {ok,android,ios,mp,manifestTip} |
单个权限的跨端配置详情 |
allNames |
allNames() → string[] |
逻辑权限名列表(同步纯函数) |
isSupported |
isSupported(name) → boolean |
权限名是否受支持(同步纯函数) |
PLUGIN_VERSION |
string |
插件版本号 |
支持的逻辑权限
location 定位 · camera 相机 · album 相册 · record 麦克风 · notification 通知 · storage 存储 · backgroundLocation 后台定位 · bluetooth 蓝牙
中文名也可直接传('相机'),内部自动归一。
错误码
| 码 | 场景 |
|---|---|
E-PM-01 |
未知权限名 |
E-PM-02 |
权限被永久拒绝(blocked),错误码可用于排查 |
E-PM-03 |
跳转设置页失败 |

收藏人数:
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 3
赞赏 0
下载 12744412
赞赏 1959
赞赏
京公网安备:11010802035340号