问题描述
我试图按照进行 ,以便能够读取文件。
结果,我确实有权访问文件系统,但读取文件会产生错误:
未捕获的错误:NPObject上的错误调用方法
有趣的是,如果我尝试第二次调用readAsText(file)
函数,文件读取器最终会读取文件,但仍然会产生相同的错误。
如何避免此错误以及如何在第一次调用中使fileReader工作?
!DOCTYPE html>
<html>
<head>
<title>FileReader Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file){
readAsText(file);
readAsText(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function(evt) {
console.log("Read as text");
console.log(evt.target.result);
};
reader.readAsText(file);
}
function fail(evt) {
console.log(evt.target.error.code);
}
</script>
</head>
<body>
<h1>Example</h1>
<p>Read File</p>
</body>
</html>
1楼
当您尝试使用从javascript接口调用的方法与UI交互时,会发生此错误。
检查
2楼
由于某种原因,以下代码从头开始起作用,但仍然会产生相同的错误。
function gotFile(file){
readAsText(file);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(){}, fail);
}
谁能解释这种行为?