È possibile eseguire automaticamente un'attività dopo il caricamento dello WebEngine
? So che è possibile ottenere un WebEngine
da WebEngine
per indicare il progresso del caricamento, ma sembra che il polling ripetuto del Worker
non sia una soluzione elegante (vale a dire il blocco del programma fino al caricamento della pagina). So che posso farlo con un Task
, quindi posso ottenere il Task
per WebEngine
in qualche modo e aggiungere un comando di esecuzione sul comando completo?Eseguire un'attività dopo che WebView è stato caricato completamente
10
A
risposta
15
esempio sulla base delle WebView documentation:
webView.getEngine().getLoadWorker().stateProperty().addListener(
new ChangeListener<Worker.State>() {
@Override
public void changed(
ObservableValue<? extends Worker.State> observable,
Worker.State oldValue, Worker.State newValue) {
if(newValue != Worker.State.SUCCEEDED) {
return;
}
// Your logic here
}
});
Come un'espressione lambda:
webView.getEngine().getLoadWorker().stateProperty().addListener(
(ObservableValue<? extends Worker.State> observable,
Worker.State oldValue,
Worker.State newValue) -> {
if(newValue != Worker.State.SUCCEEDED) {
return;
}
// Your logic here
});