更新记录

1.0.1(2026-05-17)

优化性能

1.0.0(2026-05-17)

  • 首发:Android / iOS / HarmonyOS 文件选择 UTS 插件
  • Android:自定义选取界面(靛紫渐变顶栏 + 胶囊分组),支持目录浏览、扩展名分类、类型分组
  • Android 11/12:MediaStore + 目录扫描,适配 Scoped Storage
  • 单选/多选、数量限制、搜索、排序、已选清单、图片预览
  • 可配置 extensions、groups、strings(国际化)、theme、sortType
  • iOS / 鸿蒙:系统文档选择器,统一回调结构

平台兼容性

uni-app(3.7.7)

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

uni-app x(4.0)

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

其他

多语言 暗黑模式 宽屏模式
× ×

ly028-filepicker

uni-app / uni-app x UTS 原生文件选择插件:目录层级浏览、扩展名分类、类型分组;单选/多选、搜索、排序、已选清单、图片预览;支持 Android 11/12/13+iOSHarmonyOS

提供原生文件选择能力,支持主题、文案、分组与排序等常用配置,便于接入与国际化。


平台支持

工程类型 Android iOS HarmonyOS
uni-app App
uni-app x App
能力 Android iOS HarmonyOS
自定义文件选取页 —(系统文档选择器) —(系统文档选择器)
目录层级浏览
类型分组 Tab
单选/多选/数量限制
扩展名过滤
搜索/排序/已选清单 ✅(Android 页内) 系统提供 系统提供
图片点击预览
文案/主题自定义 部分 部分
  • 环境:uni-app 建议 HBuilderX 3.7.2+;uni-app x 建议 HBuilderX 4.0+(鸿蒙建议 4.31+
  • 调试:原生 UTS 插件必须进入 自定义调试基座正式云打包包体 才能运行;普通标准基座不包含本插件原生代码
  • 定价:插件市场 10 元源码授权 50 元

快速开始

1. 安装

DCloud 插件市场 搜索 ly028-filepicker,导入到项目 uni_modules 后:

  1. 在插件详情页 试用/购买 并绑定当前 AppID 工程
  2. manifest.json 配置 AppID
  3. 制作自定义调试基座运行到自定义基座(真机)

2. uni-app 调用(Vue2/Vue3)

import LyFilePicker from '@/uni_modules/ly028-filepicker/js_sdk/index.js'

// 类型分组多选(默认,效果接近「文件分类」场景)
const ret = await LyFilePicker.pickFiles({
  browseMode: LyFilePicker.BROWSE_GROUP,
  maxCount: 10,
  extensions: 'png,jpg,pdf,docx,zip',
  sortType: 3
})

if (ret.ok && ret.data) {
  console.log('已选', ret.data)
}

3. uni-app x / UTS 直接调用

import { pickFiles } from '@/uni_modules/ly028-filepicker'

pickFiles({
  browseMode: 2,
  maxCount: 9,
  extensions: 'png,jpg,jpeg,pdf,docx,zip'
}, (ret) => {
  if (ret.ok) {
    console.log(ret.data)
  }
})

4. 浏览模式 browseMode

常量 说明
0 BROWSE_DIRECTORY 按文件夹层级进入(内部存储 / Download / Documents 等)
1 BROWSE_CLASSIFY extensions 扫描媒体与常见目录下的文件
2 BROWSE_GROUP 顶部分组胶囊(图片/视频/音频/文档…),可 groups 自定义

API

pickFiles(options)Promise<LyPickResult>

参数 类型 默认 说明
browseMode Number 2 0 目录 / 1 分类 / 2 分组
maxCount Number 9 最大可选数;1 为单选
extensions String | Array DEFAULT_OPTIONS 允许扩展名
groups Array 内置 6 组 { name, fileTypes[] }browseMode=2 时有效
strings Object 中文默认 界面文案,可做 i18n
theme Object 靛紫主题 primaryColorheaderGradientStart
sortType Number 0 0~7,见下表

sortType

含义
0 名称升序
1 名称降序
2 时间升序
3 时间降序
4 大小升序
5 大小降序
6 类型升序
7 类型降序

返回 data[] 单项

字段 类型 说明
name String 文件名
path String 路径
absolutePath String 绝对路径(上传常用)
mimeType String MIME 或扩展名
size Number 字节
sizeText String 42.27KB
modifiedTime Number 修改时间戳(可选)
thumbPath String 缩略图路径(可选)

UTS 直接调用

import { pickFiles } from '@/uni_modules/ly028-filepicker'

pickFiles({ browseMode: 0, maxCount: 5 }, (ret) => {
  console.log(ret)
})

国际化示例

LyFilePicker.pickFiles({
  strings: {
    title: 'Select files',
    btnConfirm: 'Done',
    btnCancel: 'Cancel',
    selectedCount: 'Selected %1$s / %2$s',
    searchHint: 'Search file name'
  }
})

manifest 权限建议

Android(按 targetSdk 自动适配,建议在 manifest 勾选):

  • READ_EXTERNAL_STORAGE(Android 12 及以下)
  • READ_MEDIA_IMAGES / READ_MEDIA_VIDEO / READ_MEDIA_AUDIO(Android 13+)

iOS:无需额外声明,用户通过系统选择器授权。

HarmonyOS:读取用户所选文件,按 module.json5 申请。


常见问题

Q:没有弹出选择页?
A:是否使用 自定义调试基座;是否在真机 App 环境(非 H5)。

Q:Android 11/12 列表为空?
A:确认已授权存储/媒体权限;部分机型需将文件放在 Download、Documents 或相册目录。

Q:iOS 为何不是同款 UI?
A:苹果沙盒限制,iOS 使用 UIDocumentPicker 系统界面,回调字段与 Android 对齐。


更新日志

changelog.md

隐私、权限声明

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

Android:读取存储/媒体(按系统版本申请);iOS:访问用户所选文件;HarmonyOS:读取用户所选文件

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

插件不采集任何数据

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