【问题标题】:Can't download file now that filetransfer is deprecated由于文件传输已弃用,因此无法下载文件
【发布时间】:2020-08-31 20:28:10
【问题描述】:

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

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

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

提前致谢

【问题讨论】:

  • 正如我在主题中所说,我不能因为它已被弃用:,(
  • 它没有被弃用。它在我的应用程序中运行良好。我认为你错过了一些东西。
  • 该插件已被弃用,直到 Apache Cordova PMC 最近投票决定取消弃用它

标签: angular cordova ionic-framework file-transfer


【解决方案1】:

终于找到了插件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 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2016-03-22
    相关资源
    最近更新 更多