私は組み込みのWebブラウザ(Sketchup)用にGWTのアプリを設計しています。私はwindow.locationの値を "skp :: myFunciton @ myParams"に変更してSketchupを制御することができます。 Sketchupはブラウザでjavascriptを実行できます。私がしたいのは、そのモデルの内容を私に与えるためにsketchupにお願いすることです。javacriptからjava(A GWT物語)
public static native void getModel() /*-{
$wnd.location = "skp:[email protected]";
}-*/;
2番目のスケッチアップの後に結果があります。しかし、どうやってそれを元に戻すのですか?問題は、エントリポイントのインスタンスがリクエストを開始し、JSNIが静的メソッドのみをjavascriptにマップできることです。私はイベントや要素を持つソリューションを持っていたと思っ
...
//Sketchup javascript
var gwtwidget = document.getElementById("myTextArea")
gwtwidget.value = "blahblah";
gwtwidget.onchange();
、その後GWTの変化を聴きます。うーん、それは動作しません。 Gwt自身のイベントシステムは、イベントをオーバーライド、シンク、抑止(または何でも)します。私はどのようなアプローチを取るべきですか?私は情報を求めてウェブを通ってきましたが、私は確かにそれを取り巻くことはできません。私は...答えはどちらかである
1コール(何とか)JavaScriptからエントリポイントインスタンスメソッドを推測している
2ファイア(何とか)GWTによってピックアップされるJavaScriptからイベント
3セットアップ非同期コールバックインターフェイスのメカニズム(何とか)
これは本当にいいようです。私はそれを試してみましょう。 – noelwarr
もう少し魔法があります:$ entry(...)関数については、http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsJSNI.html#callingを参照してください。この関数は、JavaScriptに公開されたJavaメソッドをラップするために使用する必要があります。 Javaコードで発生する可能性のある例外を処理するために使用します。 'var callBackWrapper = $ entry(function(param){...});' – haui