当前位置: 代码迷 >> Android >> 在Cordova应用程序的FileReader中在NPObject上调用方法出错(Intel XDK Android构建)
  详细解决方案

在Cordova应用程序的FileReader中在NPObject上调用方法出错(Intel XDK Android构建)

热度:79   发布时间:2023-08-04 12:45:47.0

我试图按照进行 ,以便能够读取文件。

结果,我确实有权访问文件系统,但读取文件会产生错误:

未捕获的错误: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>

当您尝试使用从javascript接口调用的方法与UI交互时,会发生此错误。

检查

由于某种原因,以下代码从头开始起作用,但仍然会产生相同的错误。

function gotFile(file){
    readAsText(file);
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(){}, fail);
}

谁能解释这种行为?

  相关解决方案