由于不推荐使用文件传输,现在无法下载文件
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 });
我写了一个 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 });