cordova-plugin-file 时的编码错误

EncodingError when cordova-plugin-file

我现在正在开发一个平台是浏览器的cordova应用程序。

我需要从本地文件系统访问一个文本文件,所以我使用的是 cordova-plugin-file。

但我在 chrome 控制台中作为异常失败了,就像这样(没有 CLI 错误):

code: 5

message: "A URI supplied to the API was malformed, or the resulting Data URL has exceeded the URL length limitations for Data URLs."

name: "EncodingError"

如我的代码所示:

document.addEventListener('deviceready', dataRead, false);
    function dataRead() {
      window.webkitRequestFileSystem(window.PERSISTENT, 100500*1024*1024, function() {
        window.webkitResolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "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);
      });

    }

我的 URI 是非法的还是出于其他原因?

有人能指出原因吗?或者给我举个正确的例子。

感谢任何帮助。

文件插件的良好参考点是 its auto and manual tests, which can be run in cordova-plugin-test-framework and also the file plugin documentation

关于你的问题的几点说明:

  • 尝试使用小于 100500*1024*1024 的值,例如 10*1024*1024
  • 而不是

window.webkitResolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "1111.csv", gotFile, fail);

尝试使用

window.resolveLocalFileSystemURL("filesystem:" + cordova.file.applicationDirectory + "persistent/1111.csv", gotFile, fail);