3

私は、Brackets-shell を使用して、Windows および OSX 用のデスクトップ パッケージ アプリを構築しています。Brackets シェルで実行されるアプリケーションは、動的に生成された Excel シートと PDF ファイルをサーバーから開くことができます。通常のブラウザでは、ファイルへのリクエストは非表示の iFrame で行われ、ユーザーはファイルを保存できます。ただし、Brackets シェルでは、ドキュメントは読み込まれません。代わりに、iFrame で次のエラーを返します

Failed to load URL http://my.server.com/generate/test.pdf with error (-3)

ブラケットをダウンロードしてローカル FS にファイルを保存する方法を誰か教えてもらえますか? 私はすでにbrackets.app.openURLInDefaultBrowserを試しましたが、デフォルトのウィンドウにはアプリケーションが使用する認証Cookieがないため、うまくいきません。

ありがとう

4

2 に答える 2

2

これは(まだ)brackets-shell でサポートされていないと思います。CEFベースのアプリは、brackets-shell が行っていない「ダウンロード ハンドラ」を具体的に実装する必要があるようです。この AppJS バグ コメントは、ほぼ同じことを述べています (そのシェルも CEF ベースであるため)。ダウンロードにNodeを使用するという提案は、ブラケットシェルでも機能しますが、認証CookieでopenURLInDefaultBrowser().

テキストのみのコンテンツをダウンロードする場合は、brackets-shell のappshell.fsファイル IO API を使用して完全に実行でき、Cookie の状況が修正されます。ただし、これらの API は現在、UTF-8 テキストのみを処理します。

したがって、ダウンロード機能を実装するには、brackets-shell にパッチを適用する必要があると思います。出発点は、 を実装してCefDownloadHandlerから返すことですCefClient::GetDownloadHandler。CEF が [名前を付けて保存] ダイアログを処理するように見えるので ( callback の arg を参照show_dialog)、多くのコードを記述する必要はまったくないかもしれません。

于 2013-11-10T04:52:41.913 に答える