4

Chrome パッケージ アプリHTML5 FileSystem APIを使用して、ログ ファイルに書き込みます。ユーザーがこのファイルをダウンロードできるようにしたいので、次の行に沿って何かを試しました。

fs.root.getFile('log.txt', {create: false}, function(fileEntry) {
  var url = fileEntry.toURL();
  // do something with the file url
});

filesystem:chrome-extension://eekedjcagggbfigdmifkmhkjbhiklnpj/temporary/log.txtただし、URL は次のようなものであり、どこかで開くことができないため、これは役に立ちません。

パッケージ化されたアプリの FileSystem API ファイルをダウンロード可能にするために、どのような手法をお勧めしますか?

編集:以下のBen Wellの回答を読んだ後、私が望むものをさらに明確にする必要があることに気付きました. HTML5 Filesystem API ファイルのコンテンツをロードし、そこから blob を構築し、それをchrome.fileSystem APIでユーザーが選択したパスに書き込むことを意味しない手法があれば、私には特にいいと思います。

4

1 に答える 1

4

chrome.fileSystem.chooseEntryを使用してみましたか? この API を使用すると、アプリでファイルをユーザーのハードディスクに保存することができます。これにより、プログラムは名前を付けて保存のようなコマンドを使用できるようになります。これはダウンロード リンクとは少し異なりますが、ネイティブ アプリのような V2 アプリとより調和しています。

chrome.fileSystem は、ユーザーにファイルの場所を選択するように求めるダイアログをポップアップ表示します。ファイルを保存するためのオプションを使用すると、ユーザーが選択した場所への書き込み権限を持つファイル エントリが返されます。これらのオプションを使用すると、ユーザーは新しいファイルを作成することもできます。

于 2013-05-07T05:31:39.897 に答える