我在Android上開發了一個Ionic 2應用程序,現在正試圖在iOS上使用它。Ionic 2 fileTransfer.download不在iOS上反應
該應用程序在初次登錄時下載了大量文件,我使用Ionic-Native Transfer plugin來做到這一點。在Android上一切正常,但在iOS上,App似乎陷入了fileTransfer.download()函數的承諾中,它甚至不會拋出錯誤。
示例代碼:
private downloadFile(downloadURL: string, filename: string) {
return new Promise((resolve, reject) => {
this.fileTransfer.download(downloadURL, this.file.dataDirectory + filename, true).then(_ => {
console.log("download of " + filename + " complete");
resolve("download finished");
}).catch(err => {
console.log(err);
reject("download error");
});
});
}
我也嘗試使用this.file.documentsDirectory,而不是適用於iOS,但我仍然沒有得到任何錯誤或成功輸出。
downloadURL來自firebaseStorage鏈接,但我也使用通常的下載URL進行了測試。
我認爲它的確與權限有關,但還沒有找到解決方案。另一個假設是,iOS上的多線程有一個限制,實際上有30-100個承諾。
但奇怪的是缺少的錯誤信息,它只是卡住,沒有一個下載完成。
任何幫助表示讚賞!
編輯:
我還沒有想出問題的原因,但在此期間,離子釋放的傳輸插件,現在被稱爲文件傳輸在官方文檔的新版本。一旦我將我的代碼更改爲使用新的FileTransfer插件,問題就消失了。
我希望這可以幫助其他面臨同樣問題的人。
你見過一些Josh Morony的視頻在iPhone上運行時調試離子應用嗎? https://www.youtube.com/watch?v=9J8AxhDxtTE&feature=youtu.be – JGFMK
感謝您的鏈接,我現在解決了我的問題,通過更新到我的時間之間發佈的Ionic的最新FileTransfer插件第一篇文章和今天。我編輯了我的帖子。 –
很高興你解決了它。你知道可以回答你自己的問題。其他人贊成/贊成這一點。所以如果他們看到這個答案,它也會幫助他們。 – JGFMK