記一次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

此次就能夠成功運行了。因此之後寫代碼的時候,仍是要多看源碼,源碼纔是最好的文檔。

相關文章
相關標籤/搜索