更新记录

1.1(2023-11-30)

优化网页加载问题

1.0(2023-11-17)

新版:在Ba-FilePicker基础上,支持微信、QQ文件,支持指定目录。


平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 14.0 armeabi-v7a:支持,arm64-v8a:支持,x86:支持 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


文件选择插件-新(支持微信、QQ文件) Ba-FilePicker2

简介

在Ba-FilePicker基础上,支持微信、QQ文件。支持浏览目录、文件分类、类型分组3种方式(效果如图);支持单选、多选、数量限制;支持搜索、排序、预览等等。

  • 支持层级浏览文件目录选择
  • 支持文件类型筛选(多个,可自定义配置)
  • 支持自定义类型分组(多个,可自定义配置)
  • 支持搜索查询
  • 支持预览已选清单
  • 支持单选、多选、限制最大选择数
  • 支持排序,可根据文件名称、时间、大小等等
  • 支持显示文件预览图、名称、大小、时间等
  • 支持的文件类型有:图片(png,jpg,jpeg,gif..)、音视频(mp3,avi,mp4,flv,movie,wav..)、文档(txt,doc,xls,pdf,ppt..)、应用(apk,exe..)、压缩包等等,几乎所有的文件类型
  • 支持自定义文本内容,并可以以此配置国际化
  • 支持设置默认排序方式
  • 支持指定自定义目录(分组、分类模式)
  • 支持选择微信、QQ文件(android13以前;鸿蒙也支持)

系列插件

文件选择插件 Ba-FilePicker文档

图片选择插件 Ba-MediaPicker文档

图片编辑插件 Ba-ImageEditor文档


有建议和需要,请联系QQ:2579546054

也可关注博客,实时更新最新插件

uniapp 常用原生插件大全


使用方法

script 中引入组件

    const filePicker = uni.requireNativePlugin('Ba-FilePicker2')

script 中调用

<script>
    const filePicker = uni.requireNativePlugin('Ba-FilePicker2')
    export default {
        data() {
            return {
                selectedList: [],
                urlQq: 'https://weixin.qq.com',
                urlWx: 'https://weixin.qq.com'
            }
        },
        methods: {
            selectFile(selectType) {
                filePicker.selectFile({
                        'selectType': selectType,//选择类型:默认为0( 0:浏览文件目录 1:文件分类 2:类型分组)
                        'maxCount': 9,//最大选择数,默认为9
                        'filetypes': 'png,jpg,mp4,apk',
                        //..... 其他参数详见下文 “自定义配置参数”
                    },
                    (res) => {
                        console.log(res)
                        if (res.data) {
                            this.selectedList = res.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"]
                        } */
                        ]
                    },
                    (res) => {
                        console.log(res)
                        if (res.data) {
                            this.selectedList = res.data;
                        }
                    });
            },
            selectFileWxQq() {//显示微信、QQ文件(分组模式)
                filePicker.selectFile({
                        selectType: 2,
                        maxCount: 9,
                        isWxQq: true,
                        //isWxQqGuide: true,
                        //isWxQqWeb13: true,
                        //urlQq: this.urlQq,
                        //urlWx: this.urlWx,
                        groupTypes: [{
                            name: "WORD",
                            fileTypes: ["doc", "docx"]
                        }, {
                            name: "EXCEL",
                            fileTypes: ["xls", "xlsx"]
                        }, {
                            name: "PPT",
                            fileTypes: ["ppt"]
                        }, {
                            name: "其他",
                            fileTypes: ["txt", "pdf", "png", "jpg", "gif"]
                        }]
                    },
                    (res) => {
                        console.log(res)
                        if (res.data) {
                            this.selectedList = res.data;
                        }
                    });
            },
        }
    }
</script>

文件图标替换

图标可使用默认,如果不喜欢也可以替换,如下

  • 在项目的 “nativeplugins\Ba-FilePicker\android\res\mipmap” 目录下(没有就新建),按下图文件名,添加需要替换的图标就会覆盖。 点击这里,查看图标替换详细

注意:更改后需要重新制作基座才能生效,建议提前配置。

Ba-FilePicker 自定义配置参数

属性名 类型 默认值 说明
selectType Number 0 选择类型:默认为0( 0:浏览文件目录 1:文件分类 2:类型分组)
maxCount Number 9 最大选择数,默认为9
filetypes String png,jpg,gif,mp3,mp4,txt,doc,apk,zip 文件类型,多个英文","隔开(selectType为0、1时有效)
groupTypes Array (见下文,“groupTypes”) 自定义文件类型分组参数,有默认值,可不传,(selectType为2时有效)
strings Object (见下文,“strings”) 自定义文本内容,也可以此实现国际化显示
sortType Number 0 排序类型:默认为0( 0:名称-升序 1:名称-降序 2:时间-升序 3:时间-降序 4:大小-升序 5:大小-降序 6:类型-升序 7:类型-降序)
isWxQq Boolean false 是否显示微信、QQ文件
isWxQqGuide Boolean false 是否显示微信、QQ文件的授权引导页
isWxQqWeb13 Boolean false 是否显示微信、QQ文件教程页面
urlWx String '' 微信教程网址
urlQq String '' QQ教程网址
targetDir String '' 指定目录,本地目录

注意:因为android版本>=13时,系统做了限制,不能再读取微信、QQ文件,在这里可以根据"isWxQqWeb13"参数判断,显示对应的引导教程(网页),网址参数为urlWx(微信)、urlQq(QQ)

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 文件路径
mimeType String 文件类型
size Number 文件大小(单位B)
sizeS String 文件大小(智能显示)

隐私、权限声明

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

文件读写

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

插件不采集任何数据

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问