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

Ionic 2 - 导入 @ionic-native/geolocation 会导致构建失败

Ionic 2 - 用蓝牙耳机录音

Ionic 2 - 语音识别

Angularfire 2 和 Ionic 2

ionic 2 + angular 2 - 选项卡 + 侧边菜单