更新记录

1.1.0(2025-09-30)

1.1.1更新

UTS权限管理插件 (uts-permission)

插件简介

这是一个基于 UTS (UniApp TypeScript) 实现的 Android与ios 动态权限申请插件,提供了简洁易用的 API 来管理 Android与ios 运行时权限。

特性

  • ✅ 使用 UTS 语法编写,无需编译原生基座
  • ✅ 支持多种常用权限的申请和管理
  • ✅ 提供同步和异步两种调用方式
  • ✅ 完整的 TypeScript 类型定义
  • ✅ 支持单个和批量权限申请
  • ✅ 支持特殊权限(悬浮窗、系统设置)

支持的权限类型

普通权限

  • storage - 写入外部存储权限
  • readStorage - 读取外部存储权限
  • camera - 相机权限
  • location - 精确定位权限
  • coarseLocation - 大致定位权限
  • microphone - 麦克风/录音权限
  • phone - 拨打电话权限
  • phoneState - 读取电话状态权限
  • contacts - 读取通讯录权限
  • writeContacts - 写入通讯录权限
  • sms - 发送短信权限
  • readSms - 读取短信权限
  • receiveSms - 接收短信权限

特殊权限

  • overlay - 悬浮窗权限
  • writeSettings - 系统设置权限

安装方式

方式一:通过 HBuilderX 导入

  1. uts-permission 文件夹复制到项目的 uni_modules 目录下
  2. 重新编译运行项目

方式二:通过插件市场导入

  1. 在 HBuilderX 中打开插件市场
  2. 搜索 "uts-permission"
  3. 点击导入到项目

使用方法

#


平台兼容性

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 12 - ×

UTS权限管理插件 (uts-permission)

插件简介

这是一个基于 UTS (UniApp TypeScript) 实现的 Android与ios 动态权限申请插件,提供了简洁易用的 API 来管理 Android与ios 运行时权限。

特性

  • ✅ 使用 UTS 语法编写,无需编译原生基座
  • ✅ 支持多种常用权限的申请和管理
  • ✅ 提供同步和异步两种调用方式
  • ✅ 完整的 TypeScript 类型定义
  • ✅ 支持单个和批量权限申请
  • ✅ 支持特殊权限(悬浮窗、系统设置)

支持的权限类型

普通权限

  • storage - 写入外部存储权限
  • readStorage - 读取外部存储权限
  • camera - 相机权限
  • location - 精确定位权限
  • coarseLocation - 大致定位权限
  • microphone - 麦克风/录音权限
  • phone - 拨打电话权限
  • phoneState - 读取电话状态权限
  • contacts - 读取通讯录权限
  • writeContacts - 写入通讯录权限
  • sms - 发送短信权限
  • readSms - 读取短信权限
  • receiveSms - 接收短信权限

特殊权限

  • overlay - 悬浮窗权限
  • writeSettings - 系统设置权限

安装方式

方式一:通过 HBuilderX 导入

  1. uts-permission 文件夹复制到项目的 uni_modules 目录下
  2. 重新编译运行项目

方式二:通过插件市场导入

  1. 在 HBuilderX 中打开插件市场
  2. 搜索 "uts-permission"
  3. 点击导入到项目

使用方法

1. 导入插件

import { 
  checkPermission, 
  checkPermissions, 
  requestPermission, 
  requestPermissions,
  openAppSettings,
  openSystemSettings,
  getPermissionName,
  getSupportedPermissions
} from "@/uni_modules/uts-permission"

2. 检查单个权限

const result = checkPermission({ permission: "camera" })
console.log(result.granted) // true 或 false

3. 检查多个权限

const result = checkPermissions({ 
  permissions: ["camera", "storage", "location"] 
})
console.log(result.allGranted) // 是否全部授予
console.log(result.permissions) // 每个权限的详细状态

4. 申请单个权限

requestPermission({ permission: "camera" }, (result) => {
  if (result.granted) {
    console.log("相机权限已授予")
  } else {
    console.log("相机权限被拒绝")
  }
})

5. 申请多个权限

requestPermissions({ 
  permissions: ["camera", "storage", "microphone"] 
}, (result) => {
  if (result.allGranted) {
    console.log("所有权限已授予")
  } else {
    console.log("部分权限被拒绝")
    console.log(result.permissions)
  }
})

6. 申请特殊权限

// 申请悬浮窗权限
requestPermission({ permission: "overlay" }, (result) => {
  console.log("悬浮窗权限:", result.granted)
})

// 申请系统设置权限
requestPermission({ permission: "writeSettings" }, (result) => {
  console.log("系统设置权限:", result.granted)
})

7. 打开设置页面

// 打开应用设置页面
openAppSettings({}, (result) => {
  console.log("已打开应用设置页面")
})

// 打开系统设置页面
openSystemSettings({}, (result) => {
  console.log("已打开系统设置页面")
})

8. 获取权限名称

const result = getPermissionName({ permission: "camera" })
console.log(result.name) // "相机权限"

9. 获取所有支持的权限

const result = getSupportedPermissions({})
console.log(result.permissions) // 所有支持的权限列表

API 文档

checkPermission(options)

检查单个权限状态(同步方法)

参数:

  • options.permission (string) - 权限名称

返回值:

{
  success: boolean,
  permission: string,
  granted: boolean,
  message: string
}

checkPermissions(options)

检查多个权限状态(同步方法)

参数:

  • options.permissions (string[]) - 权限名称数组

返回值:

{
  success: boolean,
  allGranted: boolean,
  permissions: Array<{
    permission: string,
    granted: boolean
  }>
}

requestPermission(options, callback)

申请单个权限(异步方法)

参数:

  • options.permission (string) - 权限名称
  • callback (function) - 回调函数

回调参数:

{
  success: boolean,
  permission: string,
  granted: boolean,
  message: string
}

requestPermissions(options, callback)

申请多个权限(异步方法)

参数:

  • options.permissions (string[]) - 权限名称数组
  • callback (function) - 回调函数

回调参数:

{
  success: boolean,
  allGranted: boolean,
  permissions: Array<{
    permission: string,
    granted: boolean
  }>,
  message: string
}

注意事项

  1. UTS 插件优势:使用 UTS 编写的插件无需重新编译自定义基座,可以直接在标准基座中运行
  2. Android 版本:部分权限在不同 Android与ios 版本上的行为可能不同
  3. 特殊权限:悬浮窗和系统设置权限需要跳转到系统设置页面进行授权
  4. 权限说明:建议在申请权限前向用户说明权限用途
  5. 仅支持 Android:本插件仅支持 Android与ios 平台

更新日志

1.0.0 (2025-09-30)

  • 首次发布
  • 支持常用权限的检查和申请
  • 支持特殊权限(悬浮窗、系统设置)
  • 提供完整的 TypeScript 类型定义

开发文档

许可证

MIT License

技术支持

如有问题或建议,欢迎提交 Issue。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

需要申请的权限:存储、相机、定位、麦克风、电话、通讯录、短信等

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无广告

暂无用户评论。