【发布时间】:2023-04-02 22:39:01
【问题描述】:
我正在将一个应用程序从 phonegap 2.* 更新到 cordova 3.4 现在一切顺利,只是文件下载不工作。
我需要从 Internet 下载一个文件(主机已编辑)并将其存储为 JSON 文件,以便稍后处理内容。
下载工作正常,文件将显示在文件系统中,但 FileReader 不会触发 onloadend 事件。
我尝试了一些事情,例如 onprogress 或 onerror 事件,还有 file.toURI 和 FileReader.readAsDataURL - 没有任何效果。有人有什么想法吗?
注意事项:
-
app.log可以看作是console.log的别名 -
print_r在另一个文件中定义,工作正常 - 下载的文件只有几 kB,应该不是性能问题
- 在 iOS 硬件上运行
完整代码(提取和缩短):
var fileTransfer = new FileTransfer();
var loadingStatus = 0;
fileTransfer.onprogress = function (progressEvent) {
// if we have the complete length we can calculate the percentage, otherwise just count up
if (progressEvent.lengthComputable) {
loadingStatus = Math.floor(progressEvent.loaded / progressEvent.total * 100);
} else {
loadingStatus++;
}
app.log('Transfer Progress: ' + loadingStatus);
};
fileTransfer.download(
encodeURI('http://www.example.com/export'),
'cdvfile://localhost/persistent/import.json',
function (file) {
var FileReader = new FileReader();
FileReader.onloadend = function (evt) {
app.log('Filereader onloadend');
app.log(evt);
};
FileReader.readAsText(file);
},
function (error) {
// FileTransfer failed
app.log("FileTransfer Error: " + print_r(error));
}
);
【问题讨论】:
标签: javascript ios cordova filereader