文件传输已被弃用,现在无法下载文件

问题描述

我写了一个Ionic 4应用程序。我想更新它,似乎文件传输现在已弃用,因此我将其删除。问题是,现在我无法下载文件。文档说它可以用XMLHttpRequest代替,就像下面的链接一样,我遵循此链接创建了一个新的“ downloadFiles”功能https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html

但是这种解决方案使我在CORS问题上感到挣扎。我无法在服务器上设置正确的CORS标头(允许来源和内容),因为我无法对其进行编辑。

使用Ionic立即下载文件的正确方法是什么?

多谢

解决方法

最后找到了带有cordova-plugin-advanced-http插件的解决方案

首次安装插件

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

然后使用它获取blob,绕过cors问题

 import { HTTP,HTTPResponse } from '@ionic-native/http/ngx';

 constructor(
   private adHTTP: HTTP
 )
 ...
  const reqOptions: any = {
    method: 'get',responseType: 'blob'
  };
  let res: HTTPResponse = await this.adHTTP.sendRequest(source,reqOptions);
  let blob: Blob = res.data;
  await this.file.writeFile(path,filename,blob,{ replace: true });