使用cordova-plugin-file

时间:2015-12-17 07:15:58

标签: cordova google-chrome cordova-plugins html5-filesystem cordova-plugin-file

我现在正在开发一个cordova app whitch平台浏览器(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(value of window.isFilePluginReadyRaised()

似乎filePluginIsReady事件没有被解雇! WHY吗

此外,如果我直接在deviceready事件下编写代码。它也将失败,并显示以下错误消息:

  

代码:5

     

消息:"提供给API的URI格式错误,或者生成的数据网址超出了数据网址的网址长度限制。"

     

name:" EncodingError"

任何人都可以指出原因或给我一个正确的例子吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

为什么会发生这种情况的一件事是,可能是你附加到filePluginIsReady的时间已经被触发了。尝试订阅appStart.js中的事件或应用中的第一个文件。它对我有用