x-permission-s 权限
跨端权限查询与申请。业务只用 location、camera 这类稳定字段,不要直接写各端原生权限名。
success 只表示流程走完,不代表已全部授权。是否可用看 result.granted,逐项看 result.permissions。
兼容性
| Harmony | IOS | Android | WEB | 小程序 |
|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 |
调用
ts
import { getPermissions, checkPermissions, requestPermissions, openPermissionSettings } from "@/uni_modules/x-permission-s"
const xPermissions = getPermissions()
const list = [
xPermissions.location,
xPermissions.camera,
xPermissions.microphone,
xPermissions.photos,
xPermissions.notification
] as string[]
checkPermissions({
permissions: list,
success: (result) => {
console.log(result.granted, result.permissions)
}
})
requestPermissions({
permissions: list,
autoOpenSettings: true,
continueAfterSettings: true,
success: (result) => {
console.log(result.granted)
}
})
openPermissionSettings({
permission: xPermissions.location
})方法
| 名称 | 需要 | 说明 |
|---|---|---|
| getPermissions | 无 | 返回稳定字段对象,如 xPermissions.location |
| checkPermissions | permissions: string[],可选回调 | 只查询,不弹授权框 |
| requestPermissions | permissions,可选 autoOpenSettings、continueAfterSettings | 申请权限;success 只表示流程走完,是否授权看 result.granted |
| openPermissionSettings | 可选 permission | 打开应用设置,或某项权限的系统入口 |
参数
稳定字段:location、locationAlways、camera、microphone、photos、photosAddOnly、contacts、calendar、notification、bluetooth、motion、phone、sms、storage。
checkPermissions / requestPermissions
| 字段 | 说明 | 默认 |
|---|---|---|
| permissions | 稳定字段数组 | 必填 |
| autoOpenSettings | 仅申请:永久拒绝或服务关闭时是否打开设置 | false |
| continueAfterSettings | 仅申请:从设置返回后是否再查一次 | true |
| success | 流程结束 | - |
| fail | 失败 | - |
| complete | 结束 | - |
XPermissionResult:granted / allGranted、denied / hasDenied、permissions、deniedPermissions、grantedMap、deniedMap。
单项 status:granted / denied / notDetermined / restricted / serviceDisabled / limited / unsupported。当前端没有对应能力时是 unsupported,不会当成用户拒绝。
错误码:1001 系统错误,1002 权限参数为空,1003 含不支持的标识,1004 打不开设置,1005 已有请求进行中。
平台差异
- Web 仅
location/camera/microphone/notification,不能打开系统设置。 - 微信仅
location/camera/microphone/photosAddOnly,须在 manifest 声明对应 scope。 - 鸿蒙仅部分字段有等价能力,其余为
unsupported。 - Android 13+ 的
storage为unsupported。
版本
版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。
更新日志
1.0.0(2026-07-31)
- 首次发布:多权限查询、请求、详细结果与设置页跳转。
