Chromiumのカスタムビルドを作成して、音声からテキストへのアクセスをカスタムの方法で取得していますが、JavaScriptを介して新しいネイティブメソッドへのアクセスを公開する方法がわかりません。
WebKitの他のバージョンには、addToJavaScriptWindowObject(Qtにある)のようなメソッドがありますが、Chromiumで同じことを行う方法がわかりません。
Chromiumのカスタムビルドを作成して、音声からテキストへのアクセスをカスタムの方法で取得していますが、JavaScriptを介して新しいネイティブメソッドへのアクセスを公開する方法がわかりません。
WebKitの他のバージョンには、addToJavaScriptWindowObject(Qtにある)のようなメソッドがありますが、Chromiumで同じことを行う方法がわかりません。
プロセス間APIは狭いインターフェースであるため、基本的に呼び出し回数は最小限に抑えられます。
まず、クロスブラウザAPIに新しい機能を追加するための文書化された方法を紹介します(これについて詳しくは、リストで「carnitas」を検索できます): https ://sites.google.com /a/chromium.org/dev/developers/design-documents/multi-process-architecture/how-to-add-new-features
私の場合、既存のAPI呼び出しにフックするソリューションを考え出しました。基本的には、ページにjavascriptコードを挿入して、同期呼び出しのためにjavascriptの「prompt()」関数を呼び出します(タブ全体を完了するまでフリーズします)。非同期メッセージの場合はexternalHost.postMessage」。ブラウザ側では、これら2つの呼び出しをフックして処理し、オプションで応答を返します。
ChromiumラッパーライブラリであるBerkelium用に作成したコードは、 https ://github.com/sirikata/berkelium/blob/chromium8/src/WindowImpl.cppで確認できます (「javascriptCall」が参照されているすべての場所を検索してください。これらのAPIにどのように接続するかを確認するために)render_view_host.ccまたはTabContentsを変更する場合は、同じ手法をChromium自体に適用できます。
APIに適切/必要な統合のレベルを検討する必要があります。音声認識機能をChromeコードベースに受け入れることに関心がある場合は、他の機能の実装方法に従うほうがよい場合があります。