问题 完全加载WebView后执行任务


是否可以在之后自动运行任务 WebEngine 加载?我知道我能得到一个 Worker 从 WebEngine 表示加载进度,但似乎反复轮询 Worker 不是一个优雅的解决方案(即锁定程序直到页面加载)。我知道我可以这样做 Task我也能得到 Task 对于 WebEngine 不知何故,并在完整命令上添加执行?


4801
2017-09-22 01:51


起源



答案:


样本基于 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表达式:

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
  } );

16
2017-09-22 03:34