3

私は最近、npapiプラグインからjavascriptにバイナリストリームを渡す必要があるプロジェクトに取り組んでいます。次の方法を試しました。

  1. NPN_InvokeDefaultを使用して、バイナリストリームを格納する文字列バリアントを作成し、それをjavascriptに呼び出しましたが、失敗しました。(XXX.txtファイルから読み取ったバイナリストリームを渡そうとしましたが、機能します!)

  2. http://www.terraluna.org/dgp/cvsweb/PluginSDK/Documentation/pi3.htm#npnnewstreamにリストされている例であるNPN_NewStreamを使用しようとしまし たが、写真は新しいブラウザタブに読み込まれます。 javascriptでそれを受け取る方法を知っています。

これまでに同様の問題に遭遇したことがある人はいますか?または多分npapiはそのような種類のデータ転送をサポートできませんか?

あなたの提案を楽しみにしています、どうもありがとう。

4

1 に答える 1

5

残念ながら、NPAPIはこの目的を念頭に置いて設計されたことはありません。あなたがそれをすることができるいくつかの方法があります、そしてそれらのどれも本当に理想的ではありません:

  • javascript配列を作成し、データを1〜4バイトの小さなチャンクで渡すことができます(これは非常に非効率的です)
  • プラグインに埋め込まれたWebサーバーを作成し、そこからデータを要求することができます(これを行ったので、非常にうまく機能しますが、SSL Webサイトからこれを使用すると、埋め込まれたWebサーバーでセキュリティ警告が表示されることに注意してくださいSSLではありません)
  • バイナリデータをbase64エンコードして、文字列として送信できます。

それらは私がそれが行われるのを見た方法です。実際のバイナリデータを文字列として直接送信できない理由は、NPAPIでは文字列データがUTF8である必要があるためですが、base64でエンコードすると正常に機能します。

申し訳ありませんが、「より幸せな」解決策を提供することはできません:-/

于 2012-05-14T13:53:25.657 に答える