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

今天要作一个附件下载的功能,首先我得先在本地创建一个文件夹,用来存放下载的附件,那么我得先判断这个文件夹存在不存在,若是存在的话,就直接放在里面,若是不存在,就须要新建这个文件夹。插件

在 Android 原生里面判断很简单,可是因为没有使用过这个 cordova-plugin-file 插件,仍是有点坑的。code

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

checkDir(path,dir)方法

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

懵逼

p2460006574.jpg

好吧,那就如今代码里面找到这个玩意:文档

image.png

如今来分析下:源码

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

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

code 和 message 也给咱们定义了file

如今很开心,那么继续往下写。plugin

image.png

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

image.png

此次就能够成功运行了。因此之后写代码的时候,仍是要多看源码,源码才是最好的文档。

相关文章
相关标签/搜索