javascript - 从 Cordova iOS 应用程序从网站下载文件
问题描述
我有一个 Cordova 应用程序,它从网站下载图像文件并保存到本地缓存。这在 Android 上运行良好,但在 iOS 上不行。我正在使用带有 iOS 6.1.1 的 Cordova 10.0.0
var xhr = new XMLHttpRequest();
xhr.open("GET", 'https://www.mywbsite.com/image.jpg', true);
xhr.responseType = "blob";
xhr.onreadystatechange = function () {
console.log(xhr.readyState);
}
xhr.onload = function() {
var blob = xhr.response;
window.resolveLocalFileSystemURL(cordova.file.cacheDirectory, function (directoryEntry) {
directoryEntry.getFile('downloadedFile.jpg', { create: true }, function (fileEntry) {
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function (result) {
console.log("Success");
};
fileWriter.onerror = function (e) {
console.log("failed");
};
fileWriter.write(blob);
}, function(e) {
console.log("failed");
});
}, function(e) {
console.log("failed");
});
}, function(e) {
console.log("failed");
});
}
xhr.onerror = function(e) {
console.log("failed "+xhr.status);
}
xhr.send();
readyState 变为 4,状态为 0。我怀疑这与 WKWebView 有关,但我不确定如何解决这个问题。远程站点没有运行脚本,只是我要下载的直接图像。
谢谢!乔恩
解决方案
我找到了我的问题的答案。安装插件 cordova-plugin-wkwebview-file-xhr 允许 WKWebview 建立连接并下载文件。
推荐阅读
- rust - 如何将指向自身的指针传递给 C++,以便它可以执行回调?
- java - openjdk zgc上cpu使用率高
- python - Python在函数中创建线程
- python - Python将具有不同时间戳的不同列表的列表转换为数据框
- javascript - 如何在电子中注册全局键监听器?
- javascript - React 渲染一个意外的元素
- c++ - gtest 编译期间的 Cmake 错误 - gtest/internal/gtest-type-util.h:732:25:错误:预期的类型说明符
- python - 使用混合类型将列转换为日期。“to_datetime”不起作用
- java - 读取空格分隔的整数Java
- corda - 如何定制 Corda 医院?