そこで、組み込み Web ブラウザー (Sketchup) 用に GWT でアプリを設計しています。window.location の値を「skp::myFunciton@myParams」に変更することで、Sketchup を制御できます。Sketchup はブラウザで JavaScript を実行できます。私がやりたいことは、スケッチアップにそのモデルの内容を提供するよう依頼することです。
public static native void getModel() /*-{
$wnd.location = "skp:getModel@";
}-*/;
2 回目のスケッチアップの後、結果が得られます。しかし、どうすればそれを gwt に戻すことができるでしょうか? 問題は、エントリポイント インスタンスがリクエストを起動し、JSNI が静的メソッドを JavaScript にしかマップできないことです。
イベントと要素で解決策があると思いました...
//Sketchup javascript
var gwtwidget = document.getElementById("myTextArea")
gwtwidget.value = "blahblah";
gwtwidget.onchange();
次に、GWT の変更をリッスンします。残念ながら、うまくいきません。Gwt 独自のイベント システムは、イベントをオーバーライド、シンク、抑止 (または何でも) します。どのようなアプローチを取るべきですか? 私は情報を求めてウェブを調べてきましたが、確かに頭に浮かぶことはありません。答えはどちらかだと思います...
1 javascript からエントリポイント インスタンス メソッドを呼び出す (何らかの方法で)
2 gwt によって取得される JavaScript からイベントを発生させる (何らかの方法で)
3 ある種の非同期コールバック インターフェイス メカニズムをセットアップする (何らかの方法で)