javafx Obtener el historial de la página de un WebView


Ejemplo

WebHistory history = webView.getEngine().getHistory();

El historial es básicamente una lista de entradas. Cada entrada representa una página visitada y proporciona acceso a información relevante de la página, como la URL, el título y la fecha en que se visitó la página por última vez.

La lista se puede obtener utilizando el método getEntries() . El historial y la lista correspondiente de entradas cambian a medida que WebEngine navega por la web. La lista puede expandirse o reducirse dependiendo de las acciones del navegador. Estos cambios pueden ser escuchados por la API ObservableList que la lista expone.

El índice de la entrada del historial asociado con la página visitada actualmente se representa mediante currentIndexProperty() . El índice actual se puede usar para navegar a cualquier entrada en el historial usando el método go(int) . maxSizeProperty() establece el tamaño máximo del historial, que es el tamaño de la lista del historial

A continuación se muestra un ejemplo de cómo obtener y procesar la Lista de elementos del historial web .

Se utiliza un ComboBox (comboBox) para almacenar los elementos del historial. Al usar un ListChangeListener en el WebHistory el ComboBox se actualiza al WebHistory actual. En el ComboBox hay un EventHandler que redirige a la página seleccionada.

final WebHistory history = webEngine.getHistory();

comboBox.setItems(history.getEntries());
comboBox.setPrefWidth(60);
comboBox.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent ev) {
        int offset =
                comboBox.getSelectionModel().getSelectedIndex()
                - history.getCurrentIndex();
        history.go(offset);
    }
});

history.currentIndexProperty().addListener(new ChangeListener<Number>() {

    @Override
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
        // update currently selected combobox item
        comboBox.getSelectionModel().select(newValue.intValue());
    }
});

// set converter for value shown in the combobox:
//   display the urls
comboBox.setConverter(new StringConverter<WebHistory.Entry>() {

    @Override
    public String toString(WebHistory.Entry object) {
        return object == null ? null : object.getUrl();
    }

    @Override
    public WebHistory.Entry fromString(String string) {
        throw new UnsupportedOperationException();
    }
});