1

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"
        }
      }

どんなガイダンスやアドバイスも素晴らしいでしょう!ありがとうございます

4

1 に答える 1

0

Googleドキュメントのコードを使用した後、同じ問題が発生しました。コードは、存在しない 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);

    });
于 2015-10-25T22:37:54.073 に答える