更新记录
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)。
基于系统 SAF(ACTION_OPEN_DOCUMENT),适配分区存储,一般无需申请读写外部存储权限。
功能
- 单选 / 多选
- MIME 过滤(如
image/*、application/pdf)
- 扩展名过滤(结果侧二次校验)
- 可选复制到应用缓存目录,返回可直接用于
uni.uploadFile 的 path
安装
将本插件放入项目的 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.uts(ERR_*)。
平台
- Android:已实现(minSdk 21)
- iOS / 鸿蒙:未实现(后续版本)
注意
- 修改 UTS 原生相关代码后,需重新制作 自定义调试基座 再运行。
- 系统文件管理器对 MIME 过滤支持因 ROM 而异;
extensions 会在结果侧再过滤一层。
content:// 的 uri 适合长期引用;上传请优先用 copyToCache: true 得到的 path。
售价