我现在正在开发一个科尔多瓦应用程序,其平台是浏览器(Chrome)。
使用 cordova-plugin-file 读取文件时失败。
根据cordova-plugin-file 的文档:Chrome quirks,它说:
设备就绪事件后 Chrome 文件系统未立即就绪。作为一种解决方法,您可以订阅filePluginIsReady
事件....您可以使用window.isFilePluginReadyRaised
函数来检查是否已经引发了事件。
我这样写我的代码:
document.addEventListener('deviceready', dataRead, false);
function dataRead() {
window.addEventListener('filePluginIsReady', readyToRead, false);
console.log(window.isFilePluginReadyRaised());
}
function readyToRead(){
window.initPersistentFileSystem(10*1024*1024, function() {
var fs = cordova.file.applicationDirectory;
console.log(fs);
window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/1111.csv", gotFile, fail);
},function (e) {
console.log(e);
});
}
function fail(e) {
console.log("FileSystem Error");
console.dir(e);
}
function gotFile(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
console.log("Text is: "+this.result);
}
reader.readAsText(file);
});
}
它无法读取文件,控制台中的消息如下:
为文件添加代理 ------------------cordova.js:942
授予持久 fs 配额 ---------Preparing.js:170
false --------------------------------------app.js:4(的值
window.isFilePluginReadyRaised()
)
似乎该filePluginIsReady
事件没有触发!为什么?
此外,如果我deviceready
直接在事件下编写代码。它也会失败并显示以下错误消息:
代码:5
消息:“提供给 API 的 URI 格式错误,或者生成的数据 URL 已超出数据 URL 的 URL 长度限制。”
名称:“编码错误”
任何人都可以指出原因或给我一个正确的例子吗?
任何帮助表示赞赏。