FileTransfer插件,下载不在iOS上启动,回调没有错误

时间:2017-11-30 11:37:50

标签: ios cordova-plugins ionic3 file-transfer ionic-native

我正在尝试创建一个从互联网下载图像并将其存储在设备文件系统中的Ionic 3应用程序。 在Android设备上一切正常,在iOS上,对FileTransferObject.download(...)的调用似乎无所事事;我没有得到任何错误回调,也没有下载任何内容。 我创建了一个样本仓库,您可以在https://github.com/andreabarani/TestFileTransferPlugin查看。 你会在其中找到2个分支:

  • ' master '使用插件的1.6.3版
  • ' file-transfer-plugin-1.7.0 '使用版本1.7.0

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

任何帮助都非常感谢,tnx提前 安德烈

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:我的错误是过早创建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();

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

完整的工作应用可在此处找到:https://github.com/andreabarani/TestFileTransferPlugin