2016-09-30 2 views
0

Webアプリケーションを表示するためにWebkitViewを使用する意図でSabre Red Appを開発しています。私は、WebkitViewサブクラスがプラグイン・リソースとしてローカルにホストされているHTML/JSと通信する方法がいくつかあることを認識しています。しかし、Red Appと外部Webアプリケーションの間でデータ(JSONより前のもの)を交換するための最良の方法は何ですか?Sabre Red Appで外部webappと通信する方法

オプション私がに見てきた:

  1. は、iframe内にWebアプリケーションをロードし、プラグイン・リソースとしてローカルのindex.htmlを作成し、WebkitView <行く - > index.htmlを<を - > iFrame/Webアプリケーション。少しハックしているようですが、Red Workspaceが常に許可するかどうか分かりません。index.html < - > iframeの通信(クロスサイトではありません)
  2. WebkitView#executeJavaScriptウェブアプリケーションがブラウザであるかのようにあなたは、リモートのURLをレンダリングすることができますバックレッドアプリから

おかげ サイモン

答えて

0

拡張ポイント 'com.sabre.edge.platform.optional.webkit.js.handler'を使用してRed Appの例を表示しますが、WebkitViewサブクラスを使用する場合はのみです。 BrowserViewをサブクラス化すると、JSオブジェクトはでなく、となりました。

その他の点では、com.sabre.edge.cf.webapp.services.WebViewForwardingServiceを使用してJS関数を呼び出すことにしました。 (プラグインの依存関係として 'com.sabre.edge.cf.webapp.services'を必ず含めてください)

0

をJSONオブジェクトを送信することができるか、私は見ることができません。実際のWebアプリケーションはすべてプラグインにバンドルする必要はありません。

または、すべてのHTML/JSファイルをクライアント上のプラグインにバンドルする予定です。

+0

ありがとうございました。 WebkitViewを使用してリモートURLをレンダリングしますが、リモートWebアプリケーションのボタンをJSONオブジェクト/文字列をRed Appに送信する場合はどうすればよいですか?その通信チャンネルはどのように機能しますか? – Simon

+0

通常は、ページをレンダリングしているブラウザプラグイン拡張のJava Scriptインターフェイスを介して、WebページとJavaクライアントコード間の通信を可能にするJava Class Proxyを構築します。簡単に達成。 – jmacagno

関連する問題