我在
Android上开发了一款Ionic 2应用程序,现在我正试图在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个承诺.
但奇怪的是缺少错误消息,它只是卡住而不是单个下载完成.
任何帮助表示赞赏!
编辑:
我还没有弄清楚问题的原因,但与此同时,Ionic发布了一个新版本的Transfer Plugin,现在在官方文档中称为FileTransfer.一旦我更改了我的代码以使用新的FileTransfer插件,问题就消失了.
我希望这可以帮助那些遇到同样问题的人.
解决方法
我还没有弄清楚问题的原因,问题就消失了.
我希望这可以帮助那些遇到同样问题的人.