Как обрабатывать загрузки файлов с помощью JavaFX 2.0 WebEngine - PullRequest
8 голосов
/ 30 марта 2012

При использовании WebEngine и WebView JavaFX 2.0 для отображения некоторого содержимого HTML я вообще не могу обрабатывать загрузки со страницы HTML. Когда я нажимаю на любую загружаемую ссылку, ничего не происходит вообще.

Можно ли обрабатывать загрузки в JavaFX 2.0 WebView / WebEngine?

1 Ответ

14 голосов
/ 30 марта 2012

Функция загрузки в настоящее время не реализована в WebView.Вы можете реализовать это самостоятельно, отслеживая свойство location WebView и затем создавая соответствующий код для выполнения загрузки.

webView.getEngine().locationProperty().addListener(new ChangeListener<String>() {
  @Override public void changed(ObservableValue<? extends String> observableValue, String oldLoc, String newLoc) {
    // check if the newLoc corresponds to a file you want to be downloadable
    // and if so trigger some code and dialogs to handle the download.
  }
});

Пример кода для обработки загрузки из JavaFX можно найти в этом запись в блоге zenjava .Изменить: Эта страница блога больше не существует.Вот последний архив этой страницы блога.

Загрузки в веб-браузерах часто инициируются http content-type или content-disposition Заголовки и могут быть основаны на отображении MIME-типа / расширения файла.Приведенная выше схема будет работать только для сопоставления расширений файлов, где расширение файла получено из местоположения.Для обработки загрузок, основанных на заголовке типа контента или расположения контента, вам, вероятно, потребуется реализовать собственный обработчик соединений URL-адреса java.net.

Чтобы реализовать эту функциональность в основных библиотеках JavaFX, вы можете проверить JavaFX Jira для запроса функции вокруг этого и, если его нет, создайте новый запрос функции.

...