uniapp之安卓文件操作插件
因为经常会用到文件操作相关的功能,而uniapp提供的H5+ IO模块管理本地文件系统,局限性真的非常非常大 ,所以写了一个原生的安卓文件操作插件。
功能包括:创建目录、创建txt文件并写入内容、复制/移动/重命名/删除目录或文件、调用本机应用打开或分享文件、压缩/解压目录或文件、base64数据和本地图片的相互转换、获取文件列表等。
下面放了示例apk的二维码,感兴趣的可以下载体验一下:
插件地址
安卓文件操作插件 - DCloud 插件市场 https://ext.dcloud.net.cn/plugin?id=7983#detail
平台兼容性
Android | iOS |
---|---|
适用版本区间:5.0 - 11.0 支持CPU类型:armeabi-v7a,arm64-v8a,x86 | × |
1、权限接口
1.1 判断并授权所有文件的管理权限
getFileManagePermission(res=>{console.log(res);res={"hasPermission":true/false}
});
2、文件操作接口
在调用文件操作接口之前,请先获取所有文件的管理权限
2.1 获取公共目录路径
getPublicPath({type: 0, //见注释1,0:获取外部存储目录路径
},res=>{console.log(res);res={"code": 0,"message": "获取成功","data":"获取的路径"}res={"code": 1,"message": "获取失败",}
})
2.2 创建目录
createDirectory({dirPath:"",//目录,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "目录创建成功",}res={"code": 1,"message": "目录创建失败",}res={"code": 2,"message": "目录已存在",}
})
2.3 创建TXT文件,并写入内容
createTxtFile({dirPath: "", // 文件所在目录,目录不存在则自动创建,使用绝对路径fileName: "", // 文件名称,不要添加后缀名,例如:MyTestFilemessages: [], // 文件内容,字符串数组格式,写入时自动换行,例如:["第一条信息","第二条信息"]append: true, // true:文件已存在时在原文件内追加内容,false:文件已存在时覆盖原文件
},res=>{console.log(res);res={"code": 0,"message": "文件创建成功"}res={"code": 1,"message": "文件创建失败"}
})
2.4 复制目录或文件
copyFile({fromPath: "", //待复制的目录或文件,使用绝对路径toPath: "", //要粘贴到的目录,目录不存在时自动创建,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "复制成功",}res={"code": 1,"message": "复制失败",}res={"code": 2,"message": "目录或文件不存在",}res={"code": 3,"message": "其他错误原因",}
})
2.5 重命名目录或文件
renameFile({oldPath: "", //待重命名的目录或文件,使用绝对路径newPath: "", //新目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "重命名成功",}res={"code": 1,"message": "重命名失败",}res={"code": 2,"message": "目录或文件不存在",}
})
2.6 移动目录或文件
(本质上是先复制,再删除原文件)
moveFile({fromPath: "", //待移动的目录或文件,使用绝对路径toPath: "", //要移动到的目录,目录不存在时自动创建,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "移动成功"}res={"code": 1,"message": "移动失败",}res={"code": 2,"message": "目录或文件不存在",}
})
2.7 删除目录或文件
deleteFile({path: "", //目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "删除成功",}res={"code": 1,"message": "删除失败",}res={"code": 2,"message": "目录或文件不存在",}
})
2.8 获取"当前目录"或"当前文件所在目录"下的所有文件和文件夹列表
getFileList({path: "", //目录或文件,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "读取成功","data":[{"name":"文件名","path":"文件绝对路劲","isFile":"是否是文件","isDirectory":"是否是目录","lastModified":"最后一次修改时间","length":"文件大小",}……]}res={"code": 1,"message": "读取失败",}res={"code": 2,"message": "目录或文件不存在",}
})
2.9 调用本机应用打开文件
openFile({filePath: '', //文件绝对路径
},res=>{console.log(res);res={"code": 0,"message": "调用成功",}res={"code": 1,"message": "调用失败",}
})
2.10 调用本机应用分享文件
shareFile({filePath: '', //文件绝对路径
},res=>{console.log(res);res={"code": 0,"message": "调用成功",}res={"code": 1,"message": "调用失败",}
})
2.11 Base64Data转本地图片
调用saveBase64Data方法时,'data:image/jpeg;base64,' 需要替换成''
saveBase64Data({base64Data: "", //base64数据,去掉开头的数据类型字符串"data:image/jpeg;base64,"filePath: "",//输出的图片文件路径,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "转换成功",}res={"code": 1,"message": "转换失败",}
})
2.12 本地图片转Base64Data
getBase64Data({filePath: '', //待处理的本地图片文件路径,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "转换成功","data":'完整的base64数据'}res={"code": 1,"message": "转换失败",}
})
2.13 压缩目录或文件
compressFile({path:"", //要压缩的目录或文件,使用绝对路径zipFilePath: "", //压缩完成的Zip文件路径,使用绝对路径,允许重命名压缩文件
},res=>{console.log(res);res={"code": 0,"message": "压缩成功",}res={"code": 1,"message": "压缩失败",}
})
2.14 解压zip文件
extractFile({zipFilePath: "", //要解压的Zip文件路径,使用绝对路径dirPath: "", //输出目录,即解压后的目录或文件所在目录,使用绝对路径rename: "",//重命名解压文件,可选参数
},res=>{console.log(res);res={"code": 0,"message": "解压成功",}res={"code": 1,"message": "解压失败",}
})
2.15 通过安卓存储访问框架打开目录
openDirectoryBySAF({dirPath: "", //目录,使用绝对路径
},res=>{console.log(res);res={"code": 0,"message": "打开成功",}res={"code": 1,"message": "打开失败",}
})
3、注释
3.1 获取公共目录路径
type | 说明 |
---|---|
0 | 获取外部存储目录 |
1 | 获取应用私有目录 |
2 | 获取公共文档目录 |
3 | 获取公共下载目录 |
4 | 获取DCIM(相册)目录 |
5 | 获取公共图片目录 |
6 | 获取公共视频目录 |
7 | 获取公共音乐目录 |
uniapp之安卓文件操作插件相关推荐
- 安卓文件操作全解:内部文件、公共文件、私有文件、app静态文件
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓文件操作全解:内部文件.公共文件.私有文件.app静态文件. 读内部文件(当前应用程序文件夹下文件) public static String o ...
- ahk脚本,RunAny文件操作插件增强:复制图片路径为markdown相对路径并自动添加标签
优势:自动复制为markdown相对路径,添加图片引用标签,标签命名为中文名称的首字母,如果有字母和符号则保留. 目前使用vscode写markdown文档,配置好插件以后,直接在文件浏览器中拖动确实 ...
- Uniapp——使用安卓原生插件
Uniapp--使用安卓原生插件 1. 开发环境 2. 解压SDK压缩包 3. 导入UniPlugin-Hello-AS项目.并切换为project显示 4. 可删除提供的demo文件 5. 新建mo ...
- uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
uniapp 原生安卓开发插件(module),以及android环境本地调试 1.开发前景 由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助 ...
- Uniapp 文件选择插件(支持Android11、12) Ba-FilePicker
简介(下载地址) Ba-FilePicker 是一款uniapp文件选择插件.支持Android11.12:支持浏览目录.文件分类.类型分组3种方式(效果如图):支持单选.多选.数量限制:支持搜索.排 ...
- html选择文件夹插件,js/jq仿window文件夹框选操作插件
0.先给大家看看效果: 1.创建一个index.html文件 Title ul{list-style: none} li{width:200px;margin:10px;float:left;heig ...
- 安卓自动操作软件 AUTO.JS 4.1.1 ALPHA2 免费版下载
一个主要由无障碍服务实现的不需要Root权限的类似按键精灵的自动操作软件,可以实现自动点击.滑动.输入文字.打开应用等.缙哥哥目前支付宝蚂蚁森林偷能量就是基于 Auto.js 实现的. 非商业性使用 ...
- Uniapp 应用开机自启插件 Ba-Autoboot
应用开机自启插件 Ba-Autoboot 插件下载地址 简介 uniapp开机自启插件 Ba-Autoboot,主要用安卓平板.电视.窗口屏.广告屏.机顶盒等等,手机的话不能保证所有. 使用方法 使用 ...
- uniapp 开发安卓App实现高德地图路线规划导航
文章目录 技术概述 技术详述 问题与解决 我的总结 参考文献 技术概述 描述这个技术是做什么的/什么情况下会使用到这个技术,学习该技术的原因,技术的难点在哪里.控制在50-100字内. uniapp的 ...
- uni-app打包安卓app如何接入极光推送(JG-JPush)?
最近公司在做uni-app的跨端应用,其中在打包app时需要用到消息推送功能,经过一番摸索也是终于弄通并成功集成了第三方极光推送.话不多说,直接开撸: 一.我们需要用到的一些插件以及极光平台的官网链接 ...
最新文章
- 再遭质疑:Chrome、Safari自动填信息可能会泄密
- 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )
- 配置防盗链、 访问控制Directory 、访问控制FilesMatch
- LOJ#6374 网格
- JMetro版本11.6.5和8.6.5发布
- 应用程序调试技术(更新程度:完毕)送源码及PPT
- python中的下标索引
- @RequestParam详解
- 使用Maven Archetype生成工程报错的解决
- (个人使用)uni-app开发(官方资源)· 汇总
- 怎么通过scanf读取一个空白前的字符
- AMPL_网络项目问题
- iOS 游戏开发教程资源
- 解决leetcode题目乱码问题
- 第7节 简单抓包实验及帧结构分析——基于科来网络分析系统
- 红米6.0系统如何无root激活xposed框架的教程
- mp4视频在flash中边下载边播放
- Android左右声道的控制
- 【UCIe】初识 UCIe
- python中bind的用法_Python socket.bind方法代码示例
热门文章
- linux云服务器,Tomcat服务器常见 The value for the useBean class attribute is invalid 错误
- 金叉成功率_曝光MACD零轴上的秘密:“0线下方金叉买入”千万别小看,成功率达100%!...
- 电脑键盘快捷键使用大全
- map集合和set集合
- python,爬取图片
- Spring boot 集成 Redis Scarch
- 请求接口时常见的数据请求类型
- 路由器2.4G和5G有什么区别
- 计算机应用技术在医院的应用,计算机应用技术对医院信息化的影响探讨
- 上海通用北盛汽车2012届校园招聘长春理工大学专业面试安排 共 27 人