完全加载WebView后执行任务
WebEngine
完成加载后是否可以自动运行任务? 我知道我可以从WebEngine
获取一个Worker
来指示加载进度,但似乎反复轮询Worker
并不是一个优雅的解决方案(即锁定程序直到页面加载)。 我知道我可以使用Task
执行此操作,因此我可以以某种方式获取WebEngine
的Task
,并在完成命令上添加执行操作吗?
基于WebView文档的示例:
webView.getEngine().getLoadWorker().stateProperty().addListener( new ChangeListener() { @Override public void changed( ObservableValue extends Worker.State> observable, Worker.State oldValue, Worker.State newValue ) { if( newValue != Worker.State.SUCCEEDED ) { return; } // Your logic here } } );
作为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 } );