FileTransfer 插件,下载未在 iOS 开始,回调无错误

FileTransfer plugin, download not starting on iOS, no errors on callbacks

我正在尝试创建一个 Ionic 3 应用程序,它可以从 Internet 下载图像并将其存储在设备文件系统中。 在 Android 设备上一切正常,在 iOS 上对 FileTransferObject.download(...) 的调用似乎挂起,什么也没做;我没有收到错误回调,也没有下载任何内容。 我创建了一个示例存储库,您可以在以下位置查看:https://github.com/andreabarani/TestFileTransferPlugin 你会发现里面有2个分支:

两个版本在 iOS 上产生相同的结果,而 1.7.0 使 Android 构建失败。

非常感谢任何帮助,请提前 tnx 安德里亚

我找到了解决方案:我的错误是过早地创建了 FileTransferObject,可能是在平台尚未准备好时;我的代码是这样的:

    @Component({
      selector: 'page-home',
      templateUrl: 'home.html',
      providers: [FileTransfer, File]
    })
    export class HomePage {
      private fileTransfer: FileTransferObject = this.transfer.create(); // <-- here is too soon to create it
    ...

这是正确的做法:

    @Component({
      selector: 'page-home',
      templateUrl: 'home.html',
      providers: [FileTransfer, File]
    })
    export class HomePage {
      private fileTransfer: FileTransferObject;
      ...
      ...

      constructor(public navCtrl: NavController, private transfer: FileTransfer, private file: File, private alertCtrl: AlertController, private platform: Platform) {
      }

      downloadFile() {
        // using a local constant is also a valid alternative,
        // the important thing is to instantiate the object at this time
        // const fileTransfer: FileTransferObject = this.transfer.create();
        this.fileTransfer = this.transfer.create();

关于 Android FileTransfer 插件 1.7.0 版的编译问题,已通过将 Android Studio 从 2.3.3 更新到 3.0.1 版解决了所有问题。

完整的工作应用程序可在此处获得:https://github.com/andreabarani/TestFileTransferPlugin