Có thể tự động chạy tác vụ sau khi tải xong tải WebEngine
không? Tôi biết tôi có thể nhận được Worker
từ WebEngine
để cho biết tiến trình tải, nhưng có vẻ như nhiều lần bỏ phiếu Worker
không phải là giải pháp thanh lịch (tức là khóa chương trình cho đến khi tải trang). Tôi biết tôi có thể làm điều này với một Task
, vì vậy tôi có thể nhận được Task
cho WebEngine
bằng cách nào đó, và thêm một thực thi trên lệnh hoàn chỉnh?Thực thi tác vụ sau khi WebView được tải đầy đủ
10
A
Trả lời
15
mẫu dựa trên 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
}
});
Là một biểu thức 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
});