记一次ionic使用file插件cordova plugin file的坑

1,432 阅读1分钟

今天要做一个附件下载的功能,首先我得先在本地建立一个文件夹,用来存放下载的附件,那么我得先判断这个文件夹存在不存在,如果存在的话,就直接放在里面,如果不存在,就需要新建这个文件夹。

在 Android 原生里面判断很简单,但是由于没有使用过这个 cordova-plugin-file 插件,还是有点坑的。

首先,我找到了官网的介绍:

checkDir(path,dir)方法

看到没,就是这么的高贵冷艳,对于一个一直写原生的我来说,真的是:

懵逼

p2460006574.jpg

好吧,那就现在代码里面找到这个玩意:

image.png

现在来分析下:

首先,会用正则判断我们传入的 dir ,接下来会拼接路径和目录,生成一个 directory ,

然厚再去调用 $window.resolveLocalFileSystemURL 这个方法去判断 directory ,如果返回的成功,那么就会 resolve ,失败会返回我们 err 的 code 和 message ;

code 和 message 也给我们定义了

现在很开心,那么继续往下写。

image.png

看起来好像没什么问题,cordova.file.externalRootDirectory 是获取手机的根目录,'i5sesol'是我们文件夹的名字。但是你一运行就会得到一个 ENCODING_ERR 的错误,那么我们进行修改:

image.png

这次就可以成功运行了。所以以后写代码的时候,还是要多看源码,源码才是最好的文档。