angular - 由于文件传输已弃用,因此无法下载文件

标签 angular cordova ionic-framework file-transfer

我编写了一个 Ionic 4 应用程序。我想更新它,似乎文件传输现在已被弃用,所以我删除了它。问题是,现在我无法下载文件。文档说它可以用 XMLHttpRequest 替换,如下面的链接所示,我按照该链接创建了一个新的“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 });

关于angular - 由于文件传输已弃用,因此无法下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63668652/

相关文章:

javascript - 增加 MatBottomSheet 的宽度?

javascript - 如何向用户显示 ERR_NAME_NOT_RESOLVED 错误

Cordova /Phonegap更改www到应用程序

基于 IOS 10.3.1 cordova 的应用程序在尝试写入 IndexedDB 时崩溃

android - 将 "useLibrary"添加到 android cordova 插件中的 build.gradle

javascript - ng 重复无法在 ion-slide-box 上正常工作 Ui 变得扭曲

javascript - ionic native 存储 : storage. getItem() 不起作用

css - Angular:动画文本变化

angular - 在Angular中对表格列进行排序

ios - clang : error: linker command failed with exit code 1 (use -v to see invocation) in Xcode 10. 0 和 Ionic 3