Ionic 2 fileTransfer.download 在 iOS 上没有反应
Posted
技术标签:
【中文标题】Ionic 2 fileTransfer.download 在 iOS 上没有反应【英文标题】:Ionic 2 fileTransfer.download not reacting on iOS 【发布时间】:2017-12-11 12:55:39 【问题描述】:我已经在 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 插件,问题就消失了。
我希望这可以帮助遇到同样问题的其他人。
【问题讨论】:
您是否看过一些 Josh Morony 的视频,在 iPhone 上运行时调试 Ionic 应用程序? youtube.com/watch?v=9J8AxhDxtTE&feature=youtu.be 感谢该链接,我现在通过更新到最新的 Ionic FileTransfer 插件解决了我的问题,该插件在我第一篇文章和今天之间发布。我在上面编辑了我的帖子。 很高兴你解决了它。你知道可以回答你自己的问题。其他人对此表示赞成/喜欢。因此,如果他们认为这是已回答的,那也会对他们有所帮助。 【参考方案1】:我还没有弄清楚问题的原因,但与此同时,Ionic 发布了新版本的 Transfer Plugin,在官方文档中称为 FileTransfer。一旦我将代码更改为使用新的 FileTransfer 插件,问题就消失了。
我希望这可以帮助遇到同样问题的其他人。
【讨论】:
即使使用新的 ionic-native FileTransfer 插件,我也遇到了完全相同的问题。 FileTransfer 插件也有同样的问题,但在 ios 上仍然没有工作以上是关于Ionic 2 fileTransfer.download 在 iOS 上没有反应的主要内容,如果未能解决你的问题,请参考以下文章
更新到 ionic-native 2.5.1 后的 ionic 2 Typescript 错误 TS1005