简介(下载地址)
Ba-FilePicker 是一款uniapp文件选择插件。支持Android11、12;支持浏览目录、文件分类、类型分组3种方式(效果如图);支持单选、多选、数量限制;支持搜索、排序、预览等等。
- 支持层级浏览文件目录选择
- 支持文件类型筛选(多个,可自定义配置)
- 支持自定义类型分组(多个,可自定义配置)
- 支持搜索查询
- 支持预览已选清单
- 支持单选、多选、限制最大选择数
- 支持排序,可根据文件名称、时间、大小等等
- 支持显示文件预览图、名称、大小、时间等
- 支持的文件类型有:图片(png,jpg,jpeg,gif…)、音视频(mp3,avi,mp4,flv,movie,wav…)、文档(txt,doc,xls,pdf,ppt…)、应用(apk,exe…)、压缩包等等,几乎所有的文件类型
- 支持自定义文本内容,并可以以此配置国际化
- 支持设置默认排序方式
截图展示
使用方法
在 script
中引入组件
const filePicker = uni.requireNativePlugin('Ba-FilePicker')
在 script
中调用
methods: {
selectFile(selectType) {
filePicker.selectFile({
'selectType': selectType,
'maxCount': 9,
'filetypes':'png,jpg,mp4,apk'
},
(ret) => {
console.log(ret)
if (ret.data) {
this.selectedList = ret.data;
}
});
},
selectFile2() {
filePicker.selectFile({//自定义类型分组
selectType: 2,
maxCount: 9,
// groupTypes: [{//有默认值,可不传
// name: "图片",
// fileTypes: ["png", "jpg", "gif"]
// }, {
// name: "视频",
// fileTypes: ["mp4", "avi", "mpeg"]
// }, {
// name: "音频",
// fileTypes: ["mp3", "ogg", "flac"]
// }, {
// name: "文档",
// fileTypes: ["txt", "doc", "docx", "xls", "xlsx", "pdf", "ppt"]
// }, {
// name: "压缩包",
// fileTypes: ["zip", "rar"]
// }, {
// name: "应用",
// fileTypes: ["apk"]
// }]
// strings: {//自定义文本
// barTitle: "文件选择",
// barBtnOk: "确认",
// selectedDialogTitle: "已选文件",
// selectedFileCount: "已选(%1$s/%2$s)",
// searchInputHint: "请输入搜索内容",
// sortDialogTitle: "请选择",
// sortDialogItemMC: "按名称",
// sortDialogItemSJ: "按时间",
// sortDialogItemDX: "按大小",
// sortDialogItemLX: "按类型",
// sortDialogBtnAsc: "升序",
// sortDialogBtnDesc: "降序",
// },
// sortType: 0,//默认排序方式
},
(ret) => {
console.log(ret)
if (ret.data) {
this.selectedList = ret.data;
}
});
},
}
文件图标替换
图标可使用默认,如果不喜欢也可以替换,如下
- 在项目的 “nativeplugins\Ba-FilePicker\android\res\mipmap” 目录下(没有就新建),按下图文件名,添加需要替换的图标就会覆盖。
注意:更改后需要重新制作基座才能生效,建议提前配置。
Ba-FilePicker 自定义配置参数
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
selectType | Number | 0 | 选择类型:默认为0( 0:浏览文件目录 1:文件分类) |
maxCount | Number | 9 | 最大选择数,默认为9 |
filetypes | String | png,jpg,gif,mp3,mp4,txt,doc,apk,zip | 文件类型,多个英文","隔开,包含图片(png,jpg,jpeg,gif…)、音视频(mp3,avi,mp4,flv,movie,wav…)、文档(txt,doc,xls,pdf,ppt…)、应用(apk,exe…)、压缩包等等 |
groupTypes | Array | (见下文,“groupTypes”) | 自定义文件类型分组参数,有默认值,可不传,(selectType为2时有效) |
strings | Object | (见下文,“strings”) | 自定义文本内容,也可以此实现国际化显示 |
sortType | Number | 0 | 排序类型:默认为0( 0:名称-升序 1:名称-降序 2:时间-升序 3:时间-降序 4:大小-升序 5:大小-降序 6:类型-升序 7:类型-降序) |
groupTypes 数组详细
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
name | String | 分组名称 | |
fileTypes | Array | 分组中包含的类型 |
默认值:
groupTypes: [{
name: "图片",
fileTypes: ["png", "jpg", "gif"]
}, {
name: "视频",
fileTypes: ["mp4", "avi", "mpeg"]
}, {
name: "音频",
fileTypes: ["mp3", "ogg", "flac"]
}, {
name: "文档",
fileTypes: ["txt", "doc", "docx", "xls", "xlsx", "pdf", "ppt"]
}, {
name: "压缩包",
fileTypes: ["zip", "rar"]
}, {
name: "应用",
fileTypes: ["apk"]
}]
strings 属性详细
参考如下默认值即可,不需要变化的可以不填
默认值:
strings: {
barTitle: "文件选择",
barBtnOk: "确认",
selectedDialogTitle: "已选文件",
selectedFileCount: "已选(%1$s/%2$s)",
searchInputHint: "请输入搜索内容",
sortDialogTitle: "请选择",
sortDialogItemMC: "按名称",
sortDialogItemSJ: "按时间",
sortDialogItemDX: "按大小",
sortDialogItemLX: "按类型",
sortDialogBtnAsc: "升序",
sortDialogBtnDesc: "降序",
breadTextRam: "内部存储设备",
breadTextSd: "SD卡",
folderDesc: "文件:%1$s | 文件夹:%2$s",
},
回调参数
属性名 | 类型 | 说明 |
---|---|---|
data | Array | 已选择列表 |
data 数组中 item 的属性
属性名 | 类型 | 说明 |
---|---|---|
name | String | 文件名 |
absolutePath | String | 文件路径 |
系列插件
应用消息通知插件(多种样式,新增支持常驻通知模式) Ba-Notify(文档)
应用未读角标插件 Ba-Shortcut-Badge (文档)
扫码原生插件(毫秒级、支持多码)Ba-Scanner-G(文档)
扫码原生插件 - 新(可任意自定义界面版本;支持连续扫码;支持设置扫码格式)Ba-Scanner(文档)
动态修改状态栏、导航栏背景色、字体颜色插件 Ba-AppBar(文档)
安卓保活插件(采用多种主流技术) Ba-KeepAlive(文档)
安卓快捷方式(桌面长按app图标) Ba-Shortcut(文档)
自定义图片水印(任意位置) Ba-Watermark(文档)
最接近微信的图片压缩插件 Ba-ImageCompressor(文档)
视频压缩、视频剪辑插件 Ba-VideoCompressor(文档)
动态切换应用图标、名称(如新年、国庆等) Ba-ChangeIcon(文档)
原生Toast弹窗提示(穿透所有界面、穿透原生;自定义颜色、图标 ) Ba-Toast(文档)
websocket原生服务(自动重连、心跳检测) Ba-Websocket(文档)
智能安装(自动升级) Ba-SmartUpgrade(文档)
监听通知栏消息(支持白名单、黑名单、过滤) Ba-NotifyListener(文档)
全局置灰、哀悼置灰(可动态、同时支持nvue、vue) Ba-Gray(文档)
获取设备唯一标识(OAID、AAID、IMEI等) Ba-IdCode(文档)