更新记录

1.0.2(2022-12-26)

  1. 选择文件(iOS从系统"文件"app里选择文件)
  2. iOS保存文件到系统"文件"app里
  3. 浏览查看文件
  4. 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持

1.0.1(2022-12-22)

  1. 修复xcode 14打包错误问题

1.0.0(2022-12-20)

  1. 从iOS系统文件app里选择文件
  2. 保存文件到系统文件app里
  3. 浏览查看文件
  4. 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:11 - 16

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


常用文件处理插件

  1. 文件预览https://ext.dcloud.net.cn/plugin?id=17167

    • 支持pdf/word/excel/ppt/图片,支持本地或在线文件
  2. 文件增删查改copy遍历https://ext.dcloud.net.cn/plugin?id=14130

    • 文件读写、copy、move、遍历文件夹、是否存在、删除、重命名......等等
  3. 读取常用文件目录(包含U盘)https://ext.dcloud.net.cn/plugin?id=15243

    • uniapp(_www、_doc、_download)
    • Android(数据目录、文件目录、缓存目录、环境environment目录、SDCard目录、外接U盘)
    • iOS(documentDirectory、temporaryDirectory、libraryDirectory、cachesDirectory)
    • 从U盘读取或保存文件
  4. 读取本地相册图片视频音频https://ext.dcloud.net.cn/plugin?id=15711

    • 获取相册图片、视频、音频文件
    • 常用于自定义相册UI

功能

  1. 选择文件(iOS从系统"文件"app里选择文件)
  2. iOS保存文件到系统"文件"app里
  3. 浏览查看文件
  4. 常用的文件类型word、excel、ppt、pdf、txt、图片等等都支持

var fileMgr = uni.requireNativePlugin("wrs-fileMgr");
  • 选择文件

switch (uni.getSystemInfoSync().platform) {
                    case 'android': {
                        this.androidCheckPermission(() => {
                            var params = {};
                            params.title = "请选择文件";
                            params.maxCount = -1; // 可选择的最大数量,-1表示不做限制
                            params.fileTabs = [{
                                    title: "PDF",
                                    suffixs: ["pdf"]
                                },
                                {
                                    title: "DOC",
                                    suffixs: ["doc", "docx", "dot", "dotx"]
                                },
                                {
                                    title: "PPT",
                                    suffixs: ["ppt", "pptx"]
                                },
                                {
                                    title: "XLS",
                                    suffixs: ["xls", "xlsx"]
                                },
                                {
                                    title: "TXT",
                                    suffixs: ["txt"]
                                },
                                {
                                    title: "ZIP",
                                    suffixs: ["zip", "rar"]
                                }
                            ];

                            fileMgr.selectFile(params, (resp) => {
                                if (resp.code == -1) { // 完成
                                    if (resp.fileArray) {

                                    }
                                } else if (resp.code == 0) { // 取消

                                } else {

                                }
                                this.showMsg(JSON.stringify(resp));
                            });
                        });
                    }
                    break;
                case 'ios': {
                    // documentTypes参考官网:https://stackoverflow.com/questions/52070937/setting-document-extensions-in-uidocumentpicker-in-swift/52071488
                    fileMgr.selectFile({
                        documentTypes: ["public.content", "public.text", "public.source-code ", "public.image",
                            "public.audiovisual-content", "com.adobe.pdf", "com.apple.keynote.key",
                            "com.microsoft.word.doc", "com.microsoft.excel.xls",
                            "com.microsoft.powerpoint.ppt", "org.openxmlformats.wordprocessingml.document",
                            "com.microsoft.excel.xls", "org.openxmlformats.presentationml.presentation"
                        ],
                        allowsMultipleSelection: true // 是否允许多选
                    }, (resp) => {
                        // 选择的文件是临时缓存到iOS app 的缓存文件夹的,文件使用完后建议删除,避免本地空间占用
                        console.log("resp:" + JSON.stringify(resp));
                        if (resp.fileArray && resp.fileArray.length > 0) {
                            var filePath = resp.fileArray[0].filePath;
                            if (filePath) {
                                console.log("filePath:" + filePath);
                                uni.uploadFile({
                                    url: 'http://172.16.14.68:8081/file/upload', //仅为示例,非真实的接口地址
                                    filePath: filePath,
                                    name: 'file',
                                    formData: {
                                        'user': 'test'
                                    },
                                    success: (uploadFileRes) => {
                                        console.log(uploadFileRes.data);
                                    },
                                    fail: (e) => {
                                        console.log("上传失败:" + JSON.stringify(e));
                                    }
                                });
                            }
                        }
                    });
                }
                break;
                default:
                    break;
                }
  • 选择图片,仅支持Android

                        this.androidCheckPermission(() => {
                            var params = {};
                            params.title = "请选择图片";
                            params.maxCount = -1; // 可选择的最大数量,-1表示不做限制
                            params.enableVideoPicker = true; // 是否可以选择视频
                            params.enableImagePicker = true; // 是否可以选择图片
                            params.enableCameraSupport = true; // 是否显示拍照按钮

                            fileMgr.selectPhoto(params, (resp) => {
                                if (resp.code == -1) { // 完成
                                    if (resp.fileArray) {

                                    }
                                } else if (resp.code == 0) { // 取消

                                } else {

                                }
                                this.showMsg(JSON.stringify(resp));
                            });
                        });
  • iOS保存文件到系统"文件"app里,仅支持iOS

                var absPath = plus.io.convertLocalFileSystemURL('_www');
                // Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
                if (absPath.endWith('/')) {
                    absPath = absPath.substring(0, absPath.length - 1);
                }
                var url = absPath + "/static/test.pdf"
                fileMgr.saveFile({
                    url: url
                });
  • 浏览单个文件,仅支持iOS,android里浏览文件可以参考腾讯X5 webview

                var absPath = plus.io.convertLocalFileSystemURL('_www');
                // Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
                if (absPath.endWith('/')) {
                    absPath = absPath.substring(0, absPath.length - 1);
                }
                var url1 = absPath + "/static/test.pdf"
                fileMgr.previewFile({
                    file: url1
                });
  • 同时浏览多个文件,仅支持iOS

                var absPath = plus.io.convertLocalFileSystemURL('_www');
                // Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
                if (absPath.endWith('/')) {
                    absPath = absPath.substring(0, absPath.length - 1);
                }
                var url1 = absPath + "/static/test.pdf"
                var url2 = absPath + "/static/test.docx"
                fileMgr.previewFiles({
                    files: [url1, url2],
                    index: 0
                });

支持定制,联系方式 QQ:252797991

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!

隐私、权限声明

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

android: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA"/> ios: 无

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

插件不采集任何数据

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

暂无用户评论。

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