更新记录

1.0.0(2026-08-04)

  • 首版:Android SAF 文件选择(作者 Thor)
  • 支持单选 / 多选、MIME 与扩展名过滤
  • 支持复制到缓存目录,返回可上传路径
  • 定价:普通授权 ¥9.90 / 源码授权 ¥49.00

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - 5.0 × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x

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

Thor-file-picker

Thor 安卓增强文件选择 UTS 插件(第一版仅 Android)。

基于系统 SAFACTION_OPEN_DOCUMENT),适配分区存储,一般无需申请读写外部存储权限。

功能

  • 单选 / 多选
  • MIME 过滤(如 image/*application/pdf
  • 扩展名过滤(结果侧二次校验)
  • 可选复制到应用缓存目录,返回可直接用于 uni.uploadFilepath

安装

将本插件放入项目的 uni_modules/Thor-file-picker,使用 自定义调试基座 运行到 Android。

用法

import { chooseFile } from '@/uni_modules/Thor-file-picker'

chooseFile({
  multiple: true,
  count: 5,
  mimeTypes: ['image/*', 'application/pdf'],
  // extensions: ['pdf', 'png'],
  copyToCache: true,
  success(res) {
    console.log(res.files)
    // res.files[i].name / size / mimeType / uri / path / ext
  },
  fail(err) {
    console.log(err.errCode, err.errMsg)
  }
})

参数

字段 类型 默认 说明
multiple boolean false 是否多选
count number 9 多选最多返回数量;<=0 表示不截断
mimeTypes string[] ['*/*'] MIME 过滤
extensions string[] - 扩展名(不含点),会映射 MIME,并在结果侧过滤
copyToCache boolean true 是否复制到缓存并填充 path
success / fail / complete function - 回调

错误码

errCode 含义
1001 Activity 不可用
1002 用户取消
1003 未拿到 URI
1004 无法打开输入流
1005 复制到缓存失败
1006 过滤后无文件
1007 已有选择任务进行中
1099 其它异常
9001 平台不支持(预留)

错误码常量见 utssdk/unierror.utsERR_*)。

平台

  • Android:已实现(minSdk 21)
  • iOS / 鸿蒙:未实现(后续版本)

注意

  1. 修改 UTS 原生相关代码后,需重新制作 自定义调试基座 再运行。
  2. 系统文件管理器对 MIME 过滤支持因 ROM 而异;extensions 会在结果侧再过滤一层。
  3. content://uri 适合长期引用;上传请优先用 copyToCache: true 得到的 path

售价

  • 普通授权版:¥9.90
  • 源码授权版:¥49.00

隐私、权限声明

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

通过系统文件选择器(SAF)访问用户主动选择的文件,无需申请读写外部存储权限。

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

插件不采集、不上传任何用户数据;所选文件仅在本机应用内处理。

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

暂无用户评论。