JavaFXWebViewチュートリアルのセクションを参照してください。
- JavaScriptコマンドの処理
- JavaScriptからJavaFXへのアップコールの作成
JavaFX 2.0はjavaScriptからJavaFXへのアップコールを完全にはサポートしていないため、これを行うときは必ずJavaFX2.1以降を使用してください。
JavaFXコントローラーからjavascript関数を呼び出す方法は?
ドキュメントのロード後に実行されるJavaコード:
webView.getEngine().executeScript("<write your javascript here>");
javascriptから変数(経度、緯度など)を送り返す方法は?
これは一般的な通信サンプルです。実行する実際のJavaおよびJavaScriptロジックに置き換えてください。
Javaコード:
// Add a Java callback object to a WebEngine document once it has loaded.
webEngine.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
@Override public void changed(ObservableValue<? extends State> ov, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
JSObject win = (JSObject) webEngine.executeScript("window");
win.setMember("app", new JavaApp());
}
}
});
}
...
// JavaScript interface object
private class JavaApp {
public void exit() {
Platform.exit();
}
}
JavaScriptコード(この場合、html hrefのonclickハンドラーに埋め込まれています):
<a href="about:blank" onclick="app.exit()">Exit the Application</a>