Chrome.fileSystem将数据存储在文件中

时间:2015-06-23 21:06:47

标签: javascript google-chrome web-applications google-chrome-storage

我正在尝试使用chrome.fileSystem api将从Chrome地理定位API收集的数据保存到txt文件中,但是当我能够为这些目的创建文件时,该文件在过程结束时仍为空。 为简单起见,我尝试首先在文件中添加一个字符串(1234567890)。正如你在代码中看到的那样,我已经添加了几个console.log来调查代码中的哪些行没有执行,似乎代码不是从writableFileEntry.creatrwriter()执行的。

chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {
   console.log('writableFileEntry - here');
    writableFileEntry.createWriter(function(writer) {
      console.log('After writableFileEntry - here');
      writer.onerror = errorHandler;
      writer.onwriteend = function(e) {
        console.log('write complete');
      };
       console.log('before Blob - here');
      writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
    }, errorHandler);
});

manifest.json文件如下所示:

"permissions": ["location","geolocation", "storage", "unlimitedStorage", "fileSystem", "syncFileSystem", {"fileSystem": ["write"]}
          ],
  "app": {
    "background": {
      "scripts": ["background.js"]
        }
      },
  "sockets": {
        "tcp": {
            "connect": "localhost:80"
        },
        "udp": {
             "send": "localhost:80"
        }
      }

任何指导或建议都会很棒! 谢谢 奥弗

1 个答案:

答案 0 :(得分:0)

使用谷歌文档中的一些代码后我才遇到同样的问题。代码引用了一个名为errorHandler的函数,该函数不存在。添加一个名为errorHandler()的函数,它应该可以工作。

这样的事情:

chrome.fileSystem.chooseEntry({type: 'saveFile'}, function(writableFileEntry) {

        function errorHandler(){
            console.log('error');
        };

        writableFileEntry.createWriter(function(writer) {
          writer.onerror = errorHandler;
          writer.onwriteend = function(e) {
            console.log('write complete');
          };
          writer.write(new Blob(['1234567890'], {type: 'text/plain'}));
        }, errorHandler);

    });