記一次ionic使用file外掛cordova plugin file的坑

smartsean發表於2019-03-04

今天要做一個附件下載的功能,首先我得先在本地建立一個資料夾,用來存放下載的附件,那麼我得先判斷這個資料夾存在不存在,如果存在的話,就直接放在裡面,如果不存在,就需要新建這個資料夾。

在 Android 原生裡面判斷很簡單,但是由於沒有使用過這個 cordova-plugin-file 外掛,還是有點坑的。

首先,我找到了官網的介紹:

checkDir(path,dir)方法

看到沒,就是這麼的高貴冷豔,對於一個一直寫原生的我來說,真的是:

懵逼
p2460006574.jpg

好吧,那就現在程式碼裡面找到這個玩意:

image.png

現在來分析下:

首先,會用正則判斷我們傳入的 dir ,接下來會拼接路徑和目錄,生成一個 directory ,

然厚再去呼叫 $window.resolveLocalFileSystemURL 這個方法去判斷 directory ,如果返回的成功,那麼就會
resolve ,失敗會返回我們 err 的 code 和 message ;

code 和 message 也給我們定義了

記一次ionic使用file外掛cordova plugin file的坑

現在很開心,那麼繼續往下寫。

image.png

看起來好像沒什麼問題,cordova.file.externalRootDirectory 是獲取手機的根目錄,`i5sesol`是我們資料夾的名字。但是你一執行就會得到一個 ENCODING_ERR 的錯誤,那麼我們進行修改:

image.png

這次就可以成功執行了。所以以後寫程式碼的時候,還是要多看原始碼,原始碼才是最好的文件。

相關文章