4

現在、HTML ページに埋め込まれた JavaScript コードから C++ 関数を呼び出すためのさまざまなアプローチ/ソリューションを評価しています。アプリケーションは、Ubuntu Server 12.04 LTS で実行する必要があります。

私は Linux ベースの開発の専門家ではありません。JavaScript と C++ コードの間のインターフェイスに取り組むのはこれが初めてです。

C++ コードは基本的に、特定のハードウェアおよびファイル システムにアクセスするためのインターフェイス メソッドを提供する .so ファイル (動的ライブラリ) に存在します。GUI は HTML である必要があり、HTML から C++ を呼び出すことができるさまざまなソリューションを探しています。私は検索して、WebKit エンジンを使用する 2 つのアプローチを試すことにしました。

アプローチ 1: Qt 5.0.2 Webkit Bridge の使用 - WebView コントロール
GUI フレームワークは Qt フレームワーク上にあり、メイン アプリケーション ウィンドウには、JavaScript コードを含む HTML コードを実行する WebView コントロールが含まれます。
Web ページと C++ の間のインターフェースは、addToJavaScriptWindowObject() 関数を使用して行われます。

サンプル アプリケーションを作成してこのソリューションをテストしたところ、問題なく動作するようです。

アプローチ 2: GTK+ WebKit WebView を使用
する GTK 3.0 ライブラリをダウンロードしてインストールしました。
webkitgtk 2.0.1 を入手してインストールしました。
Webkit なしで GTK を使用してテスト アプリケーションを作成しましたが、うまく動作します。
GTK を使用して webkit webview コントロールを作成しようとしています。

私のアプローチ 1 を Qt で試してみたところ、私がやりたいことを実行するための非常に優れたドキュメントとサンプルのセットがありました。しかし、GTK+ を使ったアプローチ 2 から始めてからは、比較的動きが遅くなったように感じます。個人的には、私が開発しようとしている種類のアプリケーションについては、ドキュメントの部分がそれほど単純ではないと感じています。

その他のアプローチ:
また、アプレットを使用する (.so ファイルを直接呼び出す) か、V8 JavaScript エンジンを使用して JavaScript と C++ 間のインターフェイスを実行できるかどうかも確認したいと思います ( https://code.google.com/p /v8/ )

次のリソースを試しました:
http://webkitgtk.org/
http://www.webkit.org/
https://live.gnome.org/WebKitGtk/ProgrammingGuide/Tutorial

JavaScript を含む HTML Web ページでボタンがクリックされたときに、C++ 関数 (.so ファイル内) を呼び出すこのインターフェイス部分を正確に行う方法を知りたいです。どのような信号を探せばよいでしょうか。WebkitWebview コントロールを使用している場合、ボタン クリックを C++ 関数にマップするにはどうすればよいですか?

誰かが私を正しい方向に向けることができますか?

あなたの時間と知識に本当に感謝します。

よろしく。

4

3 に答える 3

1

Web アプリケーションで C++ コードまたはネイティブ アプリケーションを使用する必要がある場合は、C++ コードでサービスを作成し、REST (たとえば) API を介してサービスにアクセスすることができます。

一般的な Web アプリケーション フレームワーク (Spring/Java、Django/Python など) を使用して Web アプリケーションを開発し、Apache Thriftを使用してライブラリとインターフェイスを取ることができます。

于 2013-05-14T07:55:25.893 に答える
-1

あなたにとって最良の解決策は g-xml です。これは GAMA による優れた解決策ですが、残念ながら無料ではありません。

于 2014-03-17T03:47:58.010 に答える