Особенности Qt WebEngine
Qt WebEngine поддерживает следующие функции:
- Аудио и видео кодеки
- Chromium DevTools
- Перетаскивание
- Полный экран
- HTML5 DRM
- HTML5 Геолокация
- Протокол HTTP/2
- Встроенные диалоговые окна
- API плагинов Pepper
- Печать в PDF
- Проверка орфографии
- Ощущение касания
- Просмотр исходного кода
- WebRTC
Аудио и видео кодеки
Qt WebEngine поддерживает формат MPEG-4 Part 14 (MP4) только в том случае, если были включены необходимые проприетарные кодеки аудио и видео, такие как H.264 и MPEG слой-3 (MP3). Проприетарные кодеки можно включить, передав соответствующий параметр при конфигурировании Qt:
-proprietary-codecs
Предупреждение: При распространении библиотек проприетарных кодеков вы должны приобрести лицензии на них.
FFmpeg — кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео. Его можно настроить для использования с различными кодеками, что может вызвать проблемы с лицензированием при распространении библиотек кодеков. Для некоторых кодеков доступны открытые реализации, такие как OpenH264.
Chromium DevTools
Chromium DevTools позволяют инспектировать и отлаживать проблемы с макетом и производительностью любого веб-контента.
Эту функцию можно протестировать, запустив приложение Qt WebEngine с параметром командной строки --remote-debugging-port=[your-port] или установив переменную среды QTWEBENGINE_REMOTE_DEBUGGING, а затем используя браузер на основе Chromium (такой как Демо браузер или Nano браузер) для подключения к http://localhost:[your-port].
Для получения более подробной информации см. Отладка и профилирование Qt WebEngine.
Перетаскивание
Qt WebEngine поддерживает перетаскивание HTML5.
Эту функцию можно протестировать, открыв демо перетаскивания HTML5, например, HTML5 Демо - Перетаскивание, HTML5 Демо - Простое перетаскивание или HTML5 Демо - Перетаскивание, автоматическая загрузка, в Демо браузере или Nano браузере.
Перетаскивание файлов в браузер на самом деле не является частью HTML5, но оно поддерживается. Его можно протестировать, открыв HTML5 Демо - API файлов.
Поддержка этой функции была добавлена в Qt 5.7.0.
Полный экран
Qt WebEngine поддерживает просмотр веб-контента в полноэкранном режиме. Для получения дополнительной информации см. WebEngineSettings.fullscreenSupportEnabled, WebEngineView.fullScreenRequested, QWebEngineSettings::FullScreenSupportEnabled и QWebEnginePage::fullScreenRequested.
Эту функцию можно проверить, воспроизведя видео с YouTube в Демо браузере или Nano браузере и нажав на значок полноэкранного режима для перехода в полноэкранный режим.
Поддержка этой функции была добавлена в Qt 5.6.0.
HTML5 DRM
Qt WebEngine поддерживает просмотр защищенных DRM видео, если плагин Widevine DRM был установлен.
Формат видео, наиболее часто используемый службами DRM, H.264, требует проприетарных кодеков аудио и видео. Дополнительную информацию о включении кодеков см. в разделе Аудио и видео кодеки.
Эту функцию можно проверить, воспроизведя видео в Демо браузере или Nano браузере от castLabs, Swank Motion Pictures, Inc. или Shaka Player.
Поддержка этой функции была добавлена в Qt 5.7.0.
HTML5 Геолокация
Qt WebEngine поддерживает JavaScript Geolocation API с Qt Location в качестве бэкенда. Приложение должно явно разрешить эту функцию, используя QWebEnginePage::Geolocation или WebEngineView.Feature.
Эту функцию можно протестировать, если Qt Location был скомпилирован до Qt WebEngine. Страница http://html5demos.com/geo может быть открыта в Демо браузере и разрешена для определения текущего местоположения пользователя. Обратите внимание, что в Windows для приложения необходимо подключить внешний GPS-приемник. Дополнительную информацию см. в разделе Qt Positioning.
Поддержка этой функции была добавлена в Qt 5.5.0.
Протокол HTTP/2
Qt WebEngine поддерживает реализацию Chromium протокола HTTP/2.
Эту функцию можно проверить, открыв демо HTTP/2, например, Akamai HTTP/2 Demo, в Simple Browser или Nano Browser.
Встроенные диалоговые окна
Веб-страница может запросить диалоговые окна для следующих функций:
- Ввод учетных данных пользователя для аутентификации HTTP и прокси
- Отображение JavaScript alert, confirmation диалоговых окон и подсказок
- Выбор цветов
- Выбор файлов
- Отображение сообщений валидации формы
Qt WebEngine предоставляет стандартные диалоговые окна для этих функций. В приложениях на основе виджетов стандартные диалоговые окна основаны на QDialog, а в приложениях Qt Quick они могут быть основаны либо на Qt Quick Controls 1, либо на Qt Quick Controls 2 (с Qt 5.8). Последние используются только на eglfs платформах.
Чтобы явно принудительно использовать либо диалоговые окна на основе Qt Quick Controls 1, либо Qt Quick Controls 2, установите переменную среды QTWEBENGINE_DIALOG_SET либо на QtQuickControls1, либо на QtQuickControls2.
Диалоговые окна Qt WebEngine Widgets могут быть настраиваемыми путем переопределения функций QWebEnginePage::chooseFiles(), QWebEnginePage::javaScriptAlert(), QWebEnginePage::javaScriptConfirm() и QWebEnginePage::javaScriptPrompt().
Начиная с Qt 5.8, диалоговые окна Qt Quick можно настроить, подключившись к сигналам WebEngineView::authenticationDialogRequested(), WebEngineView::javaScriptDialogRequested(), WebEngineView::colorDialogRequested(), WebEngineView::fileDialogRequested() и WebEngineView::formValidationMessageRequested(). Пример см. в WebEngine Qt Quick Custom Dialogs Example.
API плагинов Pepper
Qt WebEngine поддерживает загрузку плагинов Pepper Plugin API (PPAPI), если WebEngineSettings::pluginsEnabled или QWebEngineSettings::PluginsEnabled установлено.
За исключением плагина Adobe Flash Player, плагины должны загружаться вручную, используя синтаксис командной строки Chromium с аргументом --register-pepper-plugins. Значение аргумента представляет собой список записей, разделенных запятыми, которые содержат путь к файлу и один или несколько MIME-типов, разделенных точкой с запятой:
<file-path-plugin1>;<mime-type-plugin1>,<file-path-plugin2>;<mime-type1-plugin2>;<mime-type2-plugin2>
Например:
--register-pepper-plugins="libppapi_example.so;application/x-ppapi-example"
MIME-тип важен, потому что он определяет, для каких вложений используется плагин.
Поддержка этой функции была добавлена в Qt 5.6.0.
Поддержка плагина Pepper Flash Player
Плагин Pepper Flash player можно загрузить автоматически, если он установлен в одном из следующих расположений в зависимости от платформы:
- Windows
C:\Windows\SysWOW64\Macromed\Flash\pepflashplayer*.dll C:\Windows\System32\Macromed\Flash\pepflashplayer*.dll
- OS X
/Library/Internet Plug-Ins/PepperFlashPlayer/PepperFlashPlayer.plugin
- Linux
/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so /usr/lib/adobe-flashplugin/libpepflashplayer.so /usr/lib/PepperFlash/libpepflashplayer.so /usr/lib64/chromium/PepperFlash/libpepflashplayer.so
Вы также можете загрузить Pepper Flash player из конкретного расположения, используя аргументы командной строки:
--ppapi-flash-path=./libpepflashplayer.so
По умолчанию версия Flash установлена на 11.2.999.999. Вы можете использовать аргумент ppapi-flash-version= для установки другой версии Flash в формате major.minor.build.revision.
--ppapi-flash-version=16.0.0.235
Эту функцию можно проверить в Демо браузере или Nano браузере, если плагин Adobe Flash PPAPI установлен, а плагины включены в браузере. Для проверки функции можно открыть страницу https://helpx.adobe.com/flash-player.html в браузере.
Печать в PDF
Qt WebEngine поддерживает печать веб-страницы в файл PDF. Для получения дополнительной информации см. QWebEnginePage::printToPdf() и WebEngineView.printToPdf.
Эту функцию можно проверить в Демо браузере, выбрав Файл > Печать в PDF.
Поддержка этой функции была добавлена в Qt 5.7.0.
Проверка орфографии
Qt WebEngine поддерживает интеграцию проверки орфографии в HTML-формы, чтобы пользователи могли отправлять проверенные сообщения. Когда пользователь нажимает на подчеркнутое неправильное слово, в контекстном меню отображаются до четырёх предложений. Выбор одного из предложений заменит неправильное слово.
Для проверки орфографии, корректору правописания необходимы словари. Он поддерживает словари из проекта Hunspell, но они должны быть скомпилированы в специальный двоичный формат. Словарь Hunspell состоит из двух файлов:
- Файл
.dic, представляющий собой словарь, содержащий слова для языка - Файл
.aff, определяющий значение специальных флагов в словаре
Эти два файла могут быть преобразованы в формат bdic с помощью инструмента qwebengine_convert_dict, поставляемого вместе с Qt. При инициализации корректору правописания Qt WebEngine, он будет пытаться загрузить словари bdict и проверить их на соответствие. Сначала он ищет директории qtwebengine_dictionaries, относящиеся к исполняемому файлу, а затем проверит QT_INSTALL_PREFIX/qtwebengine_dictionaries.
Проверка орфографии отключена по умолчанию и может быть включена для каждого профиля с помощью метода QWebEngineProfile::setSpellCheckEnabled() в приложениях на основе виджетов и свойства WebEngineProfile.spellCheckEnabled в приложениях Qt Quick.
Язык, используемый для проверки орфографии, определяется для каждого профиля и может быть настроен с помощью метода QWebEngineProfile::setSpellCheckLanguages() или свойства WebEngineProfile.spellCheckLanguages.
Это свойство можно протестировать, скомпилировав и запустив пример Spellchecker Example.
Поддержка этой функции была добавлена в Qt 5.8.0.
Touch
Qt WebEngine поддерживает сенсорные устройства для навигации и взаимодействия с веб-страницами.
Приложения могут запретить использование событий касания следующими способами:
- Передача флага
--touch-events=disabledв командной строке отключит поддержку событий касания в JavaScript API (что означает, чтоontouchstartи связанные обработчики не будут присутствовать в объектеdocument.window). Однако события касания все равно будут передаваться веб-страницам. - Установка объекта фильтра событий с помощью QObject::installEventFilter на объект-прокси фокуса WebEngine View и фильтрация всех событий касания.
Просмотр исходного кода
Qt WebEngine поддерживает просмотр исходного HTML кода веб-страницы.
Это свойство может быть использовано из пользовательских меню или назначено пользовательским событиям. Для получения дополнительной информации, см. WebEngineView::WebAction и QWebEnginePage::WebAction.
Это свойство можно протестировать, открыв веб-страницу в Simple Browser или Nano Browser, а затем выбрав Page Source в контекстном меню. Элемент контекстного меню Page Source открывает просмотр исходного кода в новой вкладке.
Для открытия просмотра исходного кода в текущей вкладке также поддерживаются URL-адреса со схемой view-source URI. Например, вы можете ввести следующий URL в адресную строку, чтобы просмотреть исходный HTML код веб-страницы qt.io:
view-source:https://www.qt.io/
Автозаполнение неполных URL-адресов со схемой view-source URI делает использование этой функции более удобным. Например, следующий неполный URL также загружает просмотр исходного кода веб-страницы qt.io:
view-source:qt.io
Поддержка этой функции была добавлена в Qt 5.8.0.
WebRTC
WebRTC предоставляет браузерам возможности Real-Time Communications (RTC) через простые API. Для получения дополнительной информации, см. WebEngineView.Feature и QWebEnginePage::Feature.
Это свойство можно протестировать, настроив веб-камеру или микрофон, а затем открыв https://test.webrtc.org/ в Simple Browser или Nano Browser.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qtwebengine-features.html