完全加载WebView后执行任务 [英] Execute a task after the WebView is fully loaded
本文介绍了完全加载WebView后执行任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 WebEngine
完成加载后,是否可以自动运行任务?我知道我可以从 WebEngine
获得 Worker
来表示加载进度,但似乎反复轮询 Worker
不是一个优雅的解决方案(即在页面加载之前锁定程序)。我知道我可以使用任务
执行此操作,因此我可以获得 WebEngine的
以某种方式,并在完成命令上添加执行?任务
Is it possible to have a task automatically run after the WebEngine
finishes loading? I know I can get a Worker
from WebEngine
to indicate loading progress, but it seems like repeatedly polling the Worker
not an elegant solution (i.e. locking up program until page loads). I know I can do this with a Task
, so can I get the Task
for WebEngine
somehow, and add an execute on complete command?
推荐答案
基于 WebView文档:
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
}
} );
作为lambda表达式:
As a lambda expression:
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
} );
这篇关于完全加载WebView后执行任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文