Здравствуйте. Наверное ответ по времени не актуален, но прокомментирую. Может быть кому то пригодиться:
Я использовал Java FX и его элемент WebView, получал объект окна браузера и вызывал обратные функции в javascript.
Получение объекта окна.
browser.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue ov, State oldState, State newState) {
if(newState == Worker.State.SUCCEEDED) {
JSObject jsobj = (JSObject) browser.getEngine().executeScript("window");
jsobj.setMember("bridge", jl);
}
}
});
Создаем так называемый мост
private Bridge jl = new Bridge();
public class Bridge {
public String elementId() { //отправляем обратно в SVG
System.out.println("receive id");
return numberID;
}
public String elementIdText() {
if (numberID.startsWith("tspan")) {
String answer = "Java Callback";
iclick = true;
answer+=' '+ numberID;
return answer;
}
return "Finish";
}
}
javascript - обратные функции
function doCallbackText() {
var SVG = document.getElementById('Capa_1');
var path = bridge.elementId(); //читаем из приложения
var path1 = bridge.elementIdText();
if (path1!= "Finish") SVG.getElementById(path).textContent = path1;
console.log(path1+"Вставляю текст");
}
Более подробно и другие методы смотри здесь:
https://www.ap-impulse.com/java-and-javascript-con...