由于不推荐使用文件传输,现在无法下载文件

Can't download file now that filetransfer is deprecated

我写了一个 Ionic 4 应用程序。我想更新它,但现在似乎不推荐使用 filetransfer,所以我删除了它。问题是,现在我无法下载文件。文档说它可以被 XMLHttpRequest 替换,就像下面的 link 一样,我按照它创建了一个新的“downloadFiles”函数。 https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html

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

现在使用 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 });