更新记录

0.0.6(2024-05-27)

新增删除函数

0.0.5(2024-05-22)

增加复制,移动功能

0.0.4(2023-12-14)

增加readTxtFile函数(根据路径读取文件内容)、writeFile函数(写入内容)

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.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原生插件配置”->”云端插件“列表中删除该插件重新选择


说明

官方仅能获取系统公共目录:Downloads、Documents、Pictures 、DCIM、Movies、Music、Ringtones 等,https://ask.dcloud.net.cn/article/36199

通过安卓原生插件获取安卓外部存储目录,如图 1,

使用前

1、使用插件前先确定是否拥有读写权限(参考示例项目获取权限)

2、将下载的插件放在 nativeplugins/xiaoge-file/android 下,如图 2

3、在App 原生插件配置中选择本地插件,将插件加入进去,如图 3

4、制作自定义基座,通过自定义基座运行到手机

使用

const xiaogeFile = uni.requireNativePlugin("xiaoge-file");

// path传入/storage/emulated/0/后面的路径
let path = "";
xiaogeFile.getList(path, (res) => {
  let arr = res.data;
  console.log(arr);
});

// path2必填,获取跟目录时传入"/",如图4
let path2 = "/";
xiaogeFile.getListByPath(path2, (res) => {

})

xiaogeFile.toFile(path, (res) => {});

// 获取视频列表
xiaogeFile.getVideoList(res => {})

// 获取图片列表
xiaogeFile.getImageList(res => {})

// 获取音频列表
xiaogeFile.getAudioList(res => {})

// 获取文件列表
// fileType  1:document文件,2:apk文件,3:zip文件
xiaogeFile.getFileListByType(fileType, res => {})

// 获取文件内容
xiaogeFile.readTxtFile({path: '/storage/emulated/0/xxx/xxx.txt'} => {})

// 写入文件内容
xiaogeFile.writeFile({
    path: '/storage/emulated/0/Documents',
    fileName: 'file.txt',
    content: '写入的内容'
}, (res) => {

})

moveFile() {
    let obj = {
        oldPath: '/storage/emulated/0/test/a.txt',
        newPath: '/storage/emulated/0/test2/f.txt',
    }
    xiaogeFile.moveFile(obj, (res) => {
        console.log(res)
    })
},
// existJump 目标文件已经存在时,true表示跳过复制,false表示文件重命名(文件名加数字递增的方式)复制
// delete 复制成功后是否删除原文件
copyData() {
    let obj = {
        oldPath: '/storage/emulated/0/test/a.txt',
        newPath: '/storage/emulated/0/test2/e.txt',
        existJump: 'true',
        delete: 'true'
    }
    xiaogeFile.copyData(obj, (res) => {
        console.log(res)
    })
},
copyFile() {
    let obj = {
        oldPath: '/storage/emulated/0/test/a.txt',
        newPath: '/storage/emulated/0/test2/c.txt',
    }
    xiaogeFile.copyFile(obj, (res) => {
        console.log(res)
    })
},
deleteFile() {
    xiaogeFile.deleteFile({path: '/storage/emulated/0/test2/d.txt'}, (res) => {
        console.log(res)
    })
},

隐私、权限声明

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

读写手机存储权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

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

插件不采集任何数据

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

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