0

プラグイン開発は初めてです。npapiプラグインの開発にFirebreathを使用するように言われましたが、非常に簡単であることがわかりました。ここで、プラグインに渡された応答のhttp応答ヘッダーにアクセスしたいと思います。しかし、firebreathで利用できるドキュメントが不足しているため、方法がわかりませんでした。NPAPIチュートリアルでは、npstreamを使用していますが、firebreathでこの構造を使用する方法がわかりません。どんな助けでも大歓迎です。

アップデート:

void tPlugin::handleUnsolicitedStream(FB::BrowserStreamRequest& req)
{ 
 const FB::PluginEventSinkPtr sinkPtr;
 req.setEventSink(sinkPtr);
 responseHeaders = req.headers;
 FB::HeaderMap::const_iterator it = responseHeaders.begin();
 str = (*it).first + " : " + (*it).second;                   // str is a class variable
 FB::DOM::WindowPtr window = m_host->getDOMWindow();
 window->alert(str);
 str = "hello";
 window->alert(fname);
}

警告ボックスは表示されません。

void tPlugin::onPluginReady()
{
   FB::DOM::WindowPtr window = m_host->getDOMWindow();
   window->alert(str);
}

空のアラートボックスが表示されます!

4

1 に答える 1

1

使用している BrowserStreamRequest オブジェクトのソースを読むと、またはそれが作成された場所のソースを読むと、オブジェクトにヘッダー変数があることがわかります。

FB::HeaderMap headers;

もちろん、FB::HeaderMap はSimpleStreamHelper.hで定義されています。

typedef std::multimap<std::string, std::string> HeaderMap;

そして、明確にするために、FireBreath にはたくさんのドキュメントがあります。この特定の機能は、ツリーに約 1 か月しか存在していません。

編集:過去の会話から、あなたはすでにこれを処理していると確信していますが、ブラウザーによって作成されたストリームは、プラグイン オブジェクトのhandleUnsolicitedStreamメソッドに渡された BrowserStreamRequest オブジェクトによって提供されます。このメソッドは、fbgen テンプレートのデフォルトではプラグインによってオーバーライドされませんが、追加することはできます。

于 2012-11-05T16:28:03.693 に答える