Вебкит

Работайте с современными API WebView на Android 5 и выше.
Последнее обновление Стабильный релиз Предварительная версия релиза Бета-версия Альфа-версия
6 мая 2026 г. 1.16.0 - - -

Объявление зависимостей

Чтобы добавить зависимость от Webkit, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.webkit:webkit:1.16.0"
}

Котлин

dependencies {
    implementation("androidx.webkit:webkit:1.16.0")
}

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

Обратная связь

Ваши отзывы помогают улучшить Jetpack. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете проголосовать за существующую проблему, нажав кнопку со звездочкой.

Создать новую задачу

Для получения более подробной информации см. документацию по системе отслеживания ошибок .

Webkit версии 1.16

Версия 1.16.0

6 мая 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0 . Версия 1.16.0 содержит следующие коммиты .

Важные изменения по сравнению с версией 1.15.0:

В стабильном релизе 1.16.0 из экспериментального статуса выведены несколько API, что значительно повышает стабильность и удобство использования для разработчиков таких функций, как асинхронный запуск WebView и прослушивание навигации.
Минимальный поддерживаемый SDK (minSdk) для этой библиотеки увеличен до 24.

  • API startUpWebView и связанные с ним API асинхронной конфигурации запуска в ProcessGlobalConfig и WebViewStartUpConfig переведены из экспериментального в стабильный режим. Эти API позволяют приложениям запускать WebView раньше, обеспечивая выполнение части процесса запуска в фоновом режиме для повышения быстродействия. Предыдущая версия startUpWebView устарела, и пользователям следует перейти на новую версию, которая принимает WebViewOutcomeReceiver для обработки обратных вызовов при сбоях.
  • API навигации, включая WebViewCompat\#addNavigationListener , NavigationListener , Navigation и Page были переведены в стабильную версию. Эти API позволяют разработчикам приложений получать обратные вызовы от WebView на разных этапах навигации по странице через интерфейс NavigationListener . Это также включает возможность получения метрик производительности со страницы, что упрощает разработчикам приложений измерение производительности страниц, созданных собственными приложениями. Объекты Navigation и Page служат уникальными идентификаторами, которые связывают различные обратные вызовы, когда одновременно может происходить несколько событий WebView или навигация. Объект Navigation также предоставляет дополнительную информацию о характере текущей навигации, включая то, как она была запущена, и завершилась ли она успешно или привела к странице ошибки, в то время как объект Page предоставляет конкретный URL-адрес.
  • Метод WebViewCompat\#saveState расширяет метод WebView\#saveState , добавляя дополнительные элементы управления, позволяющие разработчикам указывать максимальный размер состояния и решать, следует ли включать записи истории изменений. Объект сохраненного состояния по-прежнему совместим с WebView\#restoreState
  • В этой версии библиотеки представлен WebViewOutcomeReceiver как специфичная для библиотеки реализация android.os.OutcomeReceiver , что позволяет этой библиотеке предоставлять аналогичный механизм для обработки результатов асинхронного обратного вызова без необходимости зависеть от более высоких значений targetSdk . В экспериментальном состоянии этот класс назывался androidx.webkit.OutcomeReceiverCompat , но был переименован во избежание конфликтов имен.
  • Внешний вклад: Были введены новые API для внедрения постоянного JavaScript в рамках события загрузки документа ( WebViewCompat#addJavaScriptOnEvent ), внедрения JavaScript и WebMessageListeners в изолированные среды для предотвращения конфликтов с существующим JavaScript страницы, а также выполнения JavaScript в ответ на веб-сообщение ( JavaScriptReplyProxy#executeJavaScript ).

    Экспериментальные API добавлены начиная с версии 1.15.0

  • Добавлен API WebViewBuilder.applyTo для применения конфигураций построителя к предварительно созданным WebViews . Это позволяет использовать возможности конфигурации API WebViewBuilder и соответствующие гарантии того, что настройки не изменятся в уже существующих объектах WebView . Это предназначено для использования с экземплярами WebView , созданными в результате развертки макета, или с подклассами WebView .

Экспериментальные API обновлены начиная с версии 1.15.0.

  • Объект BackForwardCacheSettings был изменен с объекта конфигурации, предоставляемого через WebSettingsCompat , на активный объект, который можно получить, вызвав WebSettingsCompat#getBackForwardCacheSettings . Теперь у объекта есть методы-сеттеры, которые напрямую обновляют настройки. Предыдущий вложенный класс Builder был удален, как и метод WebSettingsCompat#setBackForwardCacheSettings. Приложения, которые ранее использовали эти методы, будут испытывать ошибки сборки при обновлении.
  • Profile#setSpeculativeLoadingConfig устарел. Вместо него используйте Profile#setMaxPrerenders , PrefetchCache#setMaxPrefetches и PrefetchCache#setPrefetchTtlSeconds .
  • Удален Profile#clearPrefetchAsync поскольку он ничего не делал.
  • Изменен тип возвращаемого значения метода StartUpLocation.getStackInformation() со String на Throwable , чтобы приложения могли лучше обрабатывать эту информацию.

Версия 1.16.0-rc01

22 апреля 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-rc01 . Версия 1.16.0-rc01 содержит следующие коммиты .

  • С момента выхода androidx.webkit:webkit:1.16.0-beta01 изменений не наблюдалось.

Версия 1.16.0-beta01

8 апреля 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-beta01 . Версия 1.16.0-beta01 содержит следующие коммиты .

Изменения в API

  • Аргумент CallbackExecutor функции Profile.prefetchUrlAsync теперь может быть равен null и по умолчанию использует основной поток, если он не указан. ( Ib89ef , b/483041824 )

Версия 1.16.0-alpha04

25 марта 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-alpha04 . Версия 1.16.0-alpha04 содержит следующие коммиты .

Изменения в API

  • API startUpWebView и связанные с ним API асинхронной конфигурации запуска в ProcessGlobalConfig и WebViewStartUpConfig переведены из экспериментального в стабильный режим.
    Запуск WebView может быть длительным процессом, поэтому эти API позволяют приложениям запускать WebView в нужное время, гарантируя, что те части WebView, которые могут работать в фоновом режиме, будут выполняться именно так, повышая скорость отклика при первом использовании WebView.
    Эти API ранее были выпущены как экспериментальные и теперь могут использоваться без аннотации @OptIn . Предыдущая версия startUpWebView устарела, и пользователям этого API следует перейти на новую версию, которая принимает WebViewOutcomeReceiver для обработки обратных вызовов при сбоях. ( Iebb60 , I56bf7 )
  • Для работы API навигации больше не требуется использование аннотаций @OptIn .
    Это касается вызова WebViewCompat#addNavigationListener , а также интерфейса NavigationListener и классов Navigation и Page . Обратите внимание, что типы Navigation и Page теперь являются классами, а не интерфейсами.
    Теперь следует проверять функциональность этих API с помощью новой константы WebViewFeature#NAVIGATION_LISTENER . ( I410c8 , b/474625648 , b/448580228 , b/479792864 , b/432696062 , b/474625648 )
  • Удаляет экспериментальную аннотацию из WebViewCompat#saveState . Этот API аналогичен WebView#saveState , но позволяет разработчику указать максимальный размер состояния и следует ли включать записи истории изменений. ( Ie3fe1 , b/389076708 )
  • Profile#setSpeculativeLoadingConfig устарел. Используйте Profile#setMaxPrerenders , PrefetchCache#setMaxPrefetches , PrefetchCache#setPrefetchTtlSeconds вместо него. ( I9f0f7 , I9b977 , b/466301565 )

Версия 1.16.0-alpha03

11 марта 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-alpha03 . Версия 1.16.0-alpha03 содержит следующие коммиты .

Новые функции

  • В NavigationListener добавлены новые API для отслеживания метрик производительности веб-приложений: onFirstContentfulPaintMillis , onLargestContentfulPaintMillis и onPerformanceMarkMillis . Эти API позволяют разработчикам отслеживать отрисовку первого/наибольшего элемента контента и показатели производительности непосредственно в приложении, вместо использования JavaScript для их получения. ( Idb93b , b/432696062 )
  • Добавлена ​​информация об ошибке в объект Navigation, см. Navigation#getWebResourceError и WebResourceError#getDebugCode. Если загрузка навигации завершается с ошибкой сети, информация о причинах этой ошибки теперь доступна в объекте навигации. ( I18bdc , b/474625648 )
  • Обновите структуру API настроек BackForwardCache , добавив новый объект BackForwardCacheSettings , который можно получить, вызвав WebSettingsCompat#getBackForwardCacheSettings , и использовать для изменения каждой настройки с помощью методов set/get.
    Примечание: Мы удаляем WebSetingsCompat#setBackForwardCacheSettings и BackForwardCacheSettings.Builder , поэтому это изменение может вызвать ошибки компиляции при обновлении до этой версии, если вы использовали удаленный API. ( I377f4 )
  • Добавить API для добавления отладочной информации к запросу предварительной выборки. ( Ibb300 , b/474559983 )

Изменения в API

  • Минимальный поддерживаемый SDK (minSdk) увеличен до 24. Приложениям, ориентированным на версии SDK ниже 24, потребуется обновить целевой SDK для использования этой и будущих версий библиотеки. ( I4df32 , b/452708695 )
  • Удалена экспериментальная Profile#clearPrefetchAsync поскольку она ничего не делала. Это была разрабатываемая функция, которая так и не заработала. Если вам необходимо очистить кэш, пожалуйста, отправьте запрос на добавление этой функции. ( I341a4 , b/483043529 )
  • Перенесено свойство androidx.webkit.OutcomeReceiverCompat в стабильную версию, переименовано в WebViewOutcomeReceiver . Эта специфичная для библиотеки копия интерфейса позволяет библиотеке webkit поддерживать compileSdk = 33 , а новое имя предотвращает конфликты имен. ( I0ebf7 , I6ef8a , b/487934754 )
  • Изменен тип возвращаемого значения метода StartUpLocation.getStackInformation() со String на Throwable , чтобы приложения могли лучше обрабатывать эту информацию. ( I938d6 , b/417434566 )

Внешний вклад

  • Представляем новые API для
    • Внедрение постоянного JavaScript-кода в событие загрузки документа. Это работает аналогично существующему методу WebViewCompat#addDocumentStartJavaScript , но гарантирует готовность DOM к моменту выполнения скрипта. Новый API называется WebViewCompat#addJavaScriptOnEvent .
    • Внедрение JavaScript и WebMessageListener в изолированные среды позволяет предотвратить конфликты с существующим JavaScript-кодом страницы. Новые API называются WebViewCompat#addJavaScriptOnEvent и WebViewCompat#addWebMessageListener .
    • Выполнение JavaScript в ответ на веб-сообщение, отправленное со страницы, находящейся в том же фрейме/мировом окружении, что и отправитель сообщения. Новый API называется JavaScriptReplyProxy#executeJavaScript . ( I45d92 , b/483103617 )

Версия 1.16.0-alpha02

11 февраля 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-alpha02 . Версия 1.16.0-alpha02 содержит следующие коммиты .

Новые функции

  • Добавляет метод Page#getUrl() , который возвращает URL-адрес, связанный с объектом Page ( I0a5d7 , b/465339942 ).
  • Добавлен API WebViewBuilder.applyTo для применения конфигураций построителя к предварительно созданным WebView ( Iae133 , b/463288296 )

Версия 1.16.0-alpha01

14 января 2026 г.

Выпущена версия androidx.webkit:webkit:1.16.0-alpha01 . Версия 1.16.0-alpha01 содержит следующие коммиты .

Новые функции

  • В NavigationListener добавлены новые API для отслеживания метрик производительности веб-приложений: onFirstContentfulPaintMillis , onLargestContentfulPaintMillis и onPerformanceMarkMillis . Эти API позволяют разработчикам отслеживать метрик производительности и показатели FCP/LCP непосредственно в своем приложении, вместо использования JavaScript для их получения. ( I50266 , b/432696062 )
  • Добавляет NAVIGATION_LISTENER_NON_NULL_PAGE_FOR_SAME_DOCUMENT_NAVIGATIONS в WebViewFeature , что позволяет определить, будет ли Navigation#getPage возвращать null при навигации по одному и тому же документу. ( I3a2aa )

Исправлены ошибки

  • Исправлена ​​возможность присвоения значения null строковым параметрам в getProfilesToLoadDuringStartup ( Ic2ce5 )
  • Предоставить доступ к отсутствующей константе проверки функции WebViewBuilder ( I95534 )

Версия 1.15

Версия 1.15.0

17 декабря 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0 . Версия 1.15.0 содержит следующие коммиты .

Важные изменения с версии 1.14.0

В этом релизе minSdk увеличен с API 21 до API 23. Также добавлены следующие новые возможности API:

  • Доступ к файлам cookie и их установка в рамках коллбэков shouldInterceptRequest для WebView и Service Workers. Разработчики приложений, которые в настоящее время обращаются к API CookieManager в рамках своих shouldInterceptRequest теперь могут вместо этого напрямую включить заголовки cookie, вызвав WebViewCompat#setCookiesIncludedInShouldInterceptRequest . Это приведет к тому, что WebView добавит заголовок Cookie в карту WebResourceRequest.getRequestHeaders() , который будет содержать именно те файлы cookie, которые применяются к запросу. Это также корректно обработает любые разделенные файлы cookie. Приложения могут предоставлять значения заголовка Set-Cookie через недавно добавленный API WebResourceResponseCompat#setCookies . Добавленные там значения Set-Cookie будут обрабатываться WebView в рамках обработки ответа.
  • Настройка пользовательских заголовков запроса. API Profile#addCustomHeader позволяет разработчикам приложений задавать список статических пар «имя-значение» заголовка, которые будут отправляться в любых запросах, соответствующих указанному шаблону источника.
  • Разрешите настройку элементов в контекстном меню гиперссылки WebView. Вызывая метод WebViewCompat#setHyperlinkContextMenuItems , разработчики приложений могут указать, какие элементы отображаются в контекстном меню при длительном нажатии пользователем на гиперссылку.
  • Запуск предварительной отрисовки . WebViewCompat#prerenderUrlAsync позволяет приложениям предварительно отрисовывать URL-адреса перед их отображением в WebView . Предварительная отрисовка может значительно улучшить производительность загрузки, поскольку страница загружается заранее. Когда пользователь переходит по URL-адресу, предварительно отрисованная страница отображается мгновенно.
  • Управляйте параметрами кэширования BackForwardCache в WebView , вызывая API-функцию WebSettingsCompat#setBackForwardCacheSettings . Эта функция позволяет установить время ожидания в секундах или настроить ограничения кэширования страниц.
  • Наконец, удаление заголовка X-Requested-With в WebView отменено, и этот заголовок снова будет отправляться во всех запросах. Таким образом, API списка разрешенных запросов больше не нужен и устарел.

Экспериментальные API добавлены начиная с версии 1.14.0

  • Библиотека WebView также представила ряд API, которые в настоящее время находятся в экспериментальном статусе. Подробнее об этих API можно прочитать в сводке пакета . Если у вас есть какие-либо замечания по этим API, пожалуйста, поделитесь ими, отправив электронное письмо по адресу android-webview-dev@chromium.org или оставив отзыв в нашей системе отслеживания ошибок .

Следующие функции являются экспериментальными:

  • Метод ProcessGlobalConfig#setUiThreadStartupMode позволяет настроить инициализацию потока пользовательского интерфейса WebView. В частности, это позволит выбрать, должен ли запуск выполняться как единая задача или же он должен быть разбит на более мелкие задачи, передающие управление потоку Looper пользовательского интерфейса.
  • С помощью API WebViewBuilder можно создавать экземпляры WebView с ограниченной конфигурацией, которую нельзя изменить впоследствии. Изначально это означает, что теперь можно добавлять объекты JavaScript-интерфейсов, которые внедряются только в указанный список источников, что значительно повышает безопасность их использования. Это также отключит любые дальнейшие вызовы метода addJavascriptInterface для созданного экземпляра WebView , что гарантирует неизменяемую конфигурацию.
  • Расширенная информация об API WebViewCompat#startUpWebView :
  • Чтобы запустить процесс рендеринга для профиля, вызовите метод Profile#warmUpRendererProcess . Этот API может использоваться приложениями со сложным жизненным циклом WebView для обеспечения работы процесса рендеринга, даже если все экземпляры WebView были уничтожены.
  • Метод Profile#addQuicHints позволяет приложениям указывать WebView отдавать предпочтение протоколу QUIC/HTTP3 при подключении к указанным источникам.
  • Функция Profile#preconnect позволяет приложениям устанавливать соединение с источником до перехода к нему, чтобы ускорить последующую загрузку.

Экспериментальные API обновлены начиная с версии 1.14.0.

  • API Navigation Listener был обновлен, чтобы позволить приложениям предоставлять несколько экземпляров слушателя , которые при желании можно настроить с помощью пользовательского Executor для обратных вызовов фонового потока. Ранее это был API WebNavigationClient , который был признан устаревшим в пользу нового API. Кроме того, это обновление также добавляет информацию о времени в обратный вызов onFirstContentfulPaint , предоставляя информацию о времени от начала навигации до события отрисовки.

Версия 1.15.0-rc01

3 декабря 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0-rc01 . Версия 1.15.0-rc01 содержит следующие коммиты .

  • С момента выхода androidx.webkit:webkit:1.15.0-beta01 обновлений не было.

Версия 1.15.0-beta01

19 ноября 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0-beta01 . Версия 1.15.0-beta01 содержит следующие коммиты .

Изменения в API

  • Добавлены экспериментальные API WebViewBuilder ( I06828 , b/409740828 )
  • Добавить UiThreadStartupMode для асинхронного запуска, который предотвращает вызов isMultiProcessEnabled() при запуске Chromium ( I524ee , b/397372092 )
  • Скрытие форм-фактора UserAgent до выпуска версии 1.16 ( Ibac8a , b/430554841 , b/454438418 )
  • Обновлен API навигации, позволяющий приложениям предоставлять экземпляры NavigationListener , которые при желании можно настроить с помощью пользовательского Executor для обратных вызовов фонового потока. Теперь к одному WebView можно добавить несколько экземпляров NavigationListener .
    Кроме того, это обновление также добавляет информацию о времени в функцию обратного вызова onFirstContentfulPaint , предоставляя информацию о времени от начала навигации до события отрисовки. ( I6aa8e , b/448580228 )
  • Добавляет Profile#addQuicHints , позволяющий приложениям указывать WebView на предпочтение QUIC/HTTP3 при подключении к указанным источникам. ( I8e364 , b/445339041 )
  • Обновлены константы функций с экспериментальными аннотациями, а также обновлен файл README библиотеки с дополнительной информацией об экспериментальных API. ( I1b914 )

Исправлены ошибки

Версия 1.15.0-alpha03

8 октября 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0-alpha03 . Версия 1.15.0-alpha03 содержит следующие коммиты .

Изменения в API

  • Введен новый API для установки пользовательских заголовков запроса. Это усовершенствованная версия предыдущего экспериментального API, которая теперь позволяет приложению устанавливать несколько значений для каждого заголовка, каждое из которых сопоставляется с различным набором исходных шаблонов. Новый API также позволяет приложению проверять настроенные заголовки. ( Id7d30 , b/419469873 , b/429269470 )
  • Удаление заголовка X-Requested-With в WebView отменено, и этот заголовок снова будет отправляться по умолчанию во всех запросах. API allowlist больше не нужен и устарел. ( I884c3 , b/447094379 )
  • В WebSettingsCompat добавлен новый API, позволяющий разработчикам настраивать кэширование WebView , например, устанавливать время ожидания в секундах или ограничения на кэширование страниц. ( I642b2 , b/432395269 )
  • Добавить API HyperlinkContextMenu для настройки элементов в контекстном меню гиперссылок WebView ( Idb809 , b/382654667 )
  • Добавлен API getAsyncStartUpLocations для отладки случаев, когда WebView запускался асинхронно без использования API startUpWebView . ( I6bf4b , b/417434566 )

Версия 1.15.0-alpha02

27 августа 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0-alpha02 . Версия 1.15.0-alpha02 содержит следующие коммиты .

Новые функции

  • Добавляет Profile#preconnect , который позволяет приложениям устанавливать соединение с источником перед переходом к нему, чтобы ускорить последующую загрузку. ( I8db41 )
  • В WebViewCompat добавлен новый API prerenderUrlAsync , позволяющий приложениям предварительно отрисовывать URL-адреса перед их отображением в WebView.
    Предварительная отрисовка может значительно улучшить скорость загрузки, поскольку страница загружается заранее. Когда пользователь переходит по URL-адресу, предварительно отрисованная страница отображается мгновенно.
    Эти API ранее были выпущены как экспериментальные и теперь могут использоваться без аннотации @OptIn . ( IE14f5 )
  • Теперь вы можете указать набор профилей для синхронной загрузки при вызове API startUpWebView . Это настраивается путем передачи имен профилей в новый метод WebViewStartUpConfig.Builder ( I9a6e6 ).
  • В WebSettingsCompat добавлен новый API для включения/отключения кэширования назад (BackForwardCache) для объекта WebSettings . Этот API ранее был выпущен как экспериментальный и теперь может использоваться без аннотации @OptIn . ( IE413b )
  • Добавлена ​​поддержка переопределения форм-факторов User-Agent. Класс UserAgentMetadata имеет новые методы для получения и установки форм-факторов метаданных User-Agent. Класс UserAgentMetadata.Builder имеет новый метод setFormFactors() для переопределения подсказки клиента Sec-CH-UA-Form-Factors User-Agent. Текущие значения переопределения можно получить с помощью нового метода getFormFactors() . ( I6d08c , b/430554841 )

Изменения в API

  • Добавить API в ProcessGlobalConfig для настройки инициализации потока пользовательского интерфейса WebView ( I5e85a , b/433273850 , b/397372092 )
  • Добавить новое название функции для API WebViewStartupConfig.Builder#setProfilesToLoadDuringStartup ( I36451 )
  • Перенос минимального SDK по умолчанию с API 21 на API 23 ( Ibdfca , b/380448311 , b/435705964 , b/435705223 )
  • Обновлен API для проверки соответствия заголовка источнику, чтобы разрешить перезапись значений заголовка путем многократного вызова метода setOriginMatchedHeader для одного и того же имени заголовка. Также добавлен новый метод hasOriginMatchedHeader для проверки того, используется ли уже имя заголовка.
    Это изменение также указывает на то, что API является экспериментальным, поскольку в настоящее время он поддерживает только установку одного значения и сопоставление с источником для каждого значения заголовка, и, вероятно, в будущем он будет изменен, чтобы поддерживать несколько значений, сопоставленных с разными источниками. ( I03365 , b/419469873 , b/429269470 )
  • Требование к потоку пользовательского интерфейса для Profile#prefetchUrlAsync() снято. Теперь его можно вызывать из любого потока. ( I83d57 )
  • Интерфейс OutcomeReceiverCompat был удалён в пользу официальной версии androidx.core.os.OutcomeReceiverCompat . Теперь для работы библиотеки требуется compileSdk 35 или выше ( IE1ea5 ).
  • Переименовывает [is/set]IncludeCookiesOnShouldInterceptRequestEnabled в [are/set]CookiesIncludedInShouldInterceptRequest в WebSettingsCompat . ( Ife9e9 , b/428924452 )
  • Добавление экспериментальных аннотаций API к Profile.ExperimentalUrlPrefetch , которые ранее были опущены. ( Ic54eb , b/417458061 )

Версия 1.15.0-alpha01

2 июля 2025 г.

Выпущена версия androidx.webkit:webkit:1.15.0-alpha01 . Версия 1.15.0-alpha01 содержит следующие коммиты .

Новые функции

  • Новый API для установки пар "имя-значение" в заголовках HTTP в запросах к конкретным источникам.
    Метод Profile.setOriginMatchedHeader позволяет приложению указать, что имя и значение заголовка должны быть установлены для всех HTTP/HTTPS-запросов к источникам, соответствующим предоставленному списку разрешенных адресов, при отправке из WebViews и сервис-воркеров, использующих данный профиль. API допускает только одно сопоставление для каждого имени заголовка и выдаст исключение, если имя заголовка уже установлено.
    Используйте Profile.clearOriginMatchedHeader для удаления существующего сопоставления, а Profile.clearAllOriginMatchedHeaders для удаления всех сопоставлений. ( Ida7f1 , b/419469873 )
  • Новый API для доступа и установки файлов cookie в рамках коллбэков shouldInterceptRequest для WebView и Service Workers.
    Разработчики приложений, которые в настоящее время обращаются к API CookieManager в рамках своих shouldInterceptRequest теперь могут напрямую включить заголовки cookie, вызвав setIncludeCookiesOnShouldInterceptRequest . Это заставит WebView добавить заголовок Cookie в карту WebResourceRequest.getRequestHeaders() , который будет содержать именно те файлы cookie, которые применяются к запросу. Это также позволит корректно обрабатывать любые разделенные файлы cookie.
    Приложения могут передавать значения заголовка Set-Cookie через недавно добавленный API WebResourceResponseCompat.setCookies . Значения Set-Cookie добавленные туда, будут обрабатываться WebView в рамках обработки ответа. ( Idbfd1 , b/414769380 )
  • Новый экспериментальный API для предварительной подготовки процесса рендеринга Profile .
    Этот API может использоваться приложениями со сложным жизненным циклом WebView для обеспечения работы процесса рендеринга, даже если все экземпляры WebView были уничтожены. ( Ia8fc8 )

Изменения в API

  • В экспериментальный интерфейс навигации добавлен новый метод для передачи URL-адреса навигации. ( I1c6c0 )
  • Обновите название функции предварительной выборки профилирования, чтобы уточнить, что API предварительной выборки теперь можно вызывать в фоновом потоке. ( I7c83a )

Версия 1.14

Версия 1.14.0

4 июня 2025 г.

Выпущена версия androidx.webkit:webkit:1.14.0 . Версия 1.14.0 содержит следующие коммиты .

Важные изменения с версии 1.13.0

  • Представляем API PaymentRequest для вызова нативных платежных приложений Android через интент org.chromium.intent.action.PAY . PaymentRequest отключен по умолчанию, и приложения на основе WebView могут вызвать WebSettingsCompat.setPaymentRequestEnabled(settings, true), чтобы включить его. Кроме того, PaymentRequest требуется тег <queries> в AndroidManifest.xml . Дополнительную информацию см. в документации по методу setPaymentRequestEnabled() .
  • Представляем экспериментальный API навигации для расширенного отслеживания и управления веб-навигацией в WebView . Эти API предоставляют подробную информацию о событиях навигации. Для начала вызовите WebViewCompat.setNavigationClient с реализацией нового интерфейса WebNaviagationClient , чтобы получить подробную информацию о навигации по страницам. Для получения дополнительной информации о жизненном цикле навигации см. раздел «Жизненный цикл представления навигации» .

Версия 1.14.0-rc01

20 мая 2025 г.

Выпущена версия androidx.webkit:webkit:1.14.0-rc01 . Версия 1.14.0-rc01 содержит следующие коммиты .

  • Изменений по сравнению с 1.14.0-beta01 нет.

Версия 1.14.0-beta01

7 мая 2025 г.

Выпущена версия androidx.webkit:webkit:1.14.0-beta01 . Версия 1.14.0-beta01 содержит следующие коммиты .

Изменения в API

  • Добавить контекст в качестве параметра к API startUpWebView() ( Ic29cd , b/406701301 )

Версия 1.14.0-alpha01

9 апреля 2025 г.

Выпущена версия androidx.webkit:webkit:1.14.0-alpha01 . Версия 1.14.0-alpha01 содержит следующие коммиты .

Новые функции

  • Представляем API PaymentRequest для вызова нативных платежных приложений Android через интент org.chromium.intent.action.PAY . PaymentRequest отключен по умолчанию, и хост-приложения WebView могут вызвать WebSettingsCompat.setPaymentRequestEnabled(settings, true) чтобы включить его. Кроме того, PaymentRequest требуется тег <queries> в AndroidManifest.xml . Дополнительную информацию см. в документации по setPaymentRequestEnabled() . ( I3304e , b/404920055 )
  • Представляем экспериментальные обратные вызовы навигации. В этом релизе представлены экспериментальные API для расширенного отслеживания и управления веб-навигацией в WebView . Эти API предоставляют подробную информацию о событиях навигации. Ключевые особенности:
    • Интерфейс WebNavigationClient : Вводит новый интерфейс WebNavigationClient с функциями обратного вызова для событий навигации:
    • onNavigationStarted(Navigation navigation) : Уведомляет о начале навигации.
    • onNavigationRedirected(Navigation navigation) : Уведомляет о перенаправлении навигации.
    • onNavigationCompleted(Navigation navigation) : Уведомляет о завершении навигации.
    • Интерфейс Navigation : предоставляет подробную информацию о навигации, включая: URL-адрес, статус начала страницы, статус перехода по тому же документу, статус перезагрузки, статус истории, статус перехода назад/вперед, статус подтверждения, статус страницы ошибки, код состояния и статус восстановления сессии. Объект Navigation служит уникальным идентификатором для каждой навигации, позволяя разработчикам сопоставлять связанные события навигации.
    • Класс Page : Вводит класс Page , который служит ключом для данных, связанных со страницами. ( I351a6 )
  • Введен новый экспериментальный API для переключения поведения объектов поставщика кэширования. ( I14636 )

Изменения в API

  • Обновлено значение параметра PROFILE_URL_PREFETCH в WebViewFeature . ( I606fd )
  • Добавляет WebViewCompat#saveState , аналогичный WebView#saveState , но позволяющий ограничивать размер возвращаемого состояния и решать, сохранять ли записи истории. ( Iea7d6 )
  • Добавить параметр maxPrerenders в API SpeculativeLoadingConfig ( I67245 )

Версия 1.13

Версия 1.13.0

12 марта 2025 г.

Выпущена версия androidx.webkit:webkit:1.13.0 . Версия 1.13.0 содержит следующие коммиты .

Важные изменения с версии 1.12.0

  • Представляем новый экспериментальный API для предварительной отрисовки URL-адресов, позволяющий разработчикам предварительно отрисовывать потенциальные URL-адреса, что приводит к ускорению навигации. ( I0cfe7 )
  • Представляем набор новых API для удаления данных просмотра, хранящихся в WebView . Новые API в WebStorageCompat следует предпочитать существующим API в android.webkit.WebStorage , поскольку они гарантируют удаление всего локального хранилища, включая сетевой кэш и cookie, а также любых установленных сервис-воркеров. Если в будущем будут введены новые API для работы с хранилищем, эти новые методы будут обновлены, чтобы включить их в удаляемое хранилище. ( Iad54f , b/382273208 )
  • Добавьте API setPartitionedCookiesEnabled . Это позволит разработчикам включать и отключать разделенные файлы cookie в WebView . ( Ic506a , b/364904765 )
  • В WebView добавлен API для тегирования сокетов с целью учета сетевого трафика WebView с помощью NetworkStatsManager / TrafficStats . Эта функция будет доступна только начиная с WebView M133. ( Ica441 , b/374932688 )
  • Добавлен экспериментальный API асинхронного запуска WebView . ( I94b8a )
  • Предварительная загрузка URL-адресов в профиле: В Profile добавлен новый API, позволяющий разработчикам запускать предварительную загрузку URL-адресов. Очистка предварительной загрузки: Добавлен API для очистки текущих предварительных загрузок. ( I42c5c )
  • Устаревать WebView.startSafeBrowsing . ( If5626 )

Версия 1.13.0-rc01

26 февраля 2025 г.

Выпущена версия androidx.webkit:webkit:1.13.0-rc01 . В этом релизе нет изменений по сравнению с версией 1.13.0-beta01 .

Версия 1.13.0-beta01

12 февраля 2025 г.

Выпущена версия androidx.webkit:webkit:1.13.0-beta01 . Версия 1.13.0-beta01 содержит следующие коммиты .

Изменения в API

  • Добавьте суффикс Async к API предварительной отрисовки. Переименуйте все данные в заголовок в NoVarySearch , чтобы отразить новое имя. ( IE91c9 )
  • Добавить параметр исполнителя к API предварительной отрисовки URL. Также ограничить вызов API только потоком пользовательского интерфейса. ( I50520 )
  • Добавьте API для настройки конфигурации кэширования для запросов предварительной выборки профиля. Это также применяется к запросам предварительной отрисовки, инициированным из WebViews , связанных с этим профилем. ( Iebb6e )

Исправлены ошибки

  • Измените поведение функции URLUtilCompat.guessFileName таким образом, чтобы для подсказки расширения для имен файлов, полученных из параметра URL, использовался только параметр mimeType . ( I53ecd , b/382864232 )

Версия 1.13.0-alpha03

15 января 2025 г.

Выпущена версия androidx.webkit:webkit:1.13.0-alpha03 . Версия 1.13.0-alpha03 содержит следующие коммиты .

Новые функции

  • Представляем новый экспериментальный API для предварительной отрисовки URL-адресов, позволяющий разработчикам предварительно отрисовывать потенциальные URL-адреса, что приводит к ускорению навигации. ( I0cfe7 )
  • Представляем набор новых API для удаления данных просмотра, хранящихся в WebView . Новые API в WebStorageCompat следует предпочитать существующим API в android.webkit.WebStorage , поскольку они гарантируют удаление всего локального хранилища, включая сетевой кэш и cookie, а также любых установленных сервис-воркеров. Если в будущем будут введены новые API для работы с хранилищем, эти новые методы будут обновлены, чтобы включить их в удаляемое хранилище. ( Iad54f , b/382273208 )
  • Добавьте API setPartitionedCookiesEnabled . Это позволит разработчикам включать и отключать разделенные файлы cookie в WebView . ( Ic506a , b/364904765 )

Изменения в API

  • Измените требования к количеству потоков для API предварительной выборки, чтобы он вызывался только в потоке пользовательского интерфейса. ( I866b5 )
  • Обновите методы WebAuthn , чтобы указать, что они должны вызываться в потоке пользовательского интерфейса. Это требование уже обеспечивается реализацией, и данное изменение лишь добавляет соответствующую аннотацию. ( I6d6ba )

Версия 1.13.0-alpha02

11 декабря 2024 г.

Выпущена версия androidx.webkit:webkit:1.13.0-alpha02 . Версия 1.13.0-alpha02 содержит следующие коммиты .

Новые функции

  • В WebView добавлен API для тегирования сокетов с целью учета сетевого трафика WebView с помощью NetworkStatsManager / TrafficStats . Эта функция будет доступна только начиная с WebView M133. ( Ica441 , b/374932688 )

Изменения в API

  • Обновите API предварительной загрузки, переименовав PrefetchParameter в SpeculativeLoadingParamaters , добавив новое исключение PrefetchNetworkException , заменив PrefetchOperationCallback на OutcomeReceiverCompat и обновив документацию Javadoc. ( If5072 )
  • Получите диагностическую информацию из API асинхронного запуска WebView.
  • Предоставьте приложениям возможность запускать инициализацию только в том случае, если она не блокирует поток пользовательского интерфейса. ( I9bf2b )

Исправлены ошибки

  • В этой библиотеке теперь используются аннотации JSpecify для проверки на null , которые относятся к использованию типов. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I0e4c5 , b/326456246 )

Версия 1.13.0-alpha01

13 ноября 2024 г.

Выпущена версия androidx.webkit:webkit:1.13.0-alpha01 . Версия 1.13.0-alpha01 содержит следующие коммиты .

Новые функции

  • Добавлен экспериментальный API асинхронного запуска WebView . ( I94b8a )
  • Предварительная загрузка URL-адресов в профиле: В профиль добавлен новый API, позволяющий разработчикам запускать предварительную загрузку URL-адресов. Очистка предварительной загрузки: Добавлен API для очистки текущих предварительных загрузок. ( I42c5c )

Изменения в API

  • Устаревать WebView.startSafeBrowsing . ( If5626 )

Версия 1.12

Версия 1.12.1

2 октября 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.1 . Версия 1.12.1 содержит следующие коммиты .

Исправлены ошибки

  • Устранена проблема, из-за которой API версии 1.12.0 не были доступны в релизе.

Версия 1.12.0

18 сентября 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.0 . Версия 1.12.0 содержит следующие коммиты .

Важные изменения с версии 1.11.0

  • В WebSettingsCompat добавлен новый API для включения/отключения кэширования назад (BackForwardCache) для этого WebSettings . Этот API является экспериментальным и может быть изменен в будущем. ( aosp/3111705 )
  • В WebSettingsCompat добавлен новый API для управления поведением спекулятивной загрузки для этих WebSettings . В настоящее время доступен только предварительный рендеринг . Этот API является экспериментальным и может быть изменен в будущем. ( I13962 )
  • Добавлен новый API для включения веб-аутентификации в WebView . Разработчики могут включать/отключать вызовы WebAuthn в WebView для своих приложений, используя WebSettingsCompat#setWebAuthenticationSupport . ( I8187f )

Версия 1.12.0-rc01

4 сентября 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.0-rc01 . В этом релизе нет изменений по сравнению с версией 1.12.0-beta01 .

Версия 1.12.0-beta01

21 августа 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.0-beta01 . Версия 1.12.0-beta01 содержит следующие коммиты .

Исправлены ошибки

  • Удалено ручное описание доступа к новым API платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или более поздней версии (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или более поздней версии (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется обновиться до D8 версии 8.1 или более поздней. Подробнее см. в этой статье . ( Ia60e0 , b/345472586 )

Версия 1.12.0-alpha02

12 июня 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.0-alpha02 . Версия 1.12.0-alpha02 содержит следующие коммиты .

Новые функции

  • В WebSettingsCompat добавлен новый API для включения/отключения BackForwardCache ). Этот API является экспериментальным и может быть изменен в будущем. ( I64a38 )
  • В WebSettingsCompat добавлен новый API для управления поведением спекулятивной загрузки для этих WebSettings. В настоящее время доступен только предварительный рендеринг . Этот API является экспериментальным и может быть изменен в будущем. ( I13962 )

Изменения в API

  • Некоторые методы теперь документированы с помощью @UiThread там, где это уместно. ( I6c7e0 ), ( I44541 )
  • Потокобезопасные методы теперь документированы с помощью @AnyThread ( I70189 ).
  • Увеличение minSdkVersion с 19 до 21. ( Id7a43 )

Версия 1.12.0-alpha01

17 апреля 2024 г.

Выпущена версия androidx.webkit:webkit:1.12.0-alpha01 . Версия 1.12.0-alpha01 содержит следующие коммиты .

Изменения в API

  • Добавлен новый API для включения веб-аутентификации в WebView. Developers могут включать/отключать вызовы WebAuthn в WebView для своих приложений, используя WebSettingsCompat#setWebAuthenticationSupport . ( I8187f )

Версия 1.11

Версия 1.11.0

1 мая 2024 г.

Выпущена версия androidx.webkit:webkit:1.11.0 . Версия 1.11.0 содержит следующие коммиты .

Важные изменения с версии 1.10.0

  • Разрешите приложениям управлять воспроизведением звука в WebView с помощью новых API-функций setAudioMuted и isAudioMuted , которые аналогичны отключению звука вкладки в Chrome.
  • Представлен URLUtilCompat , который поддерживает разбор заголовков Content-Disposition , использующих атрибут filename* encoded value, как определено в RFC 6266. API совместимости также напрямую предоставляет метод для разбора заголовка Content-Disposition в тех случаях, когда предлагаемое имя файла на основе URL и MIME-типа не требуется.

Версия 1.11.0-rc01

3 апреля 2024 г.

Выпущена версия androidx.webkit:webkit:1.11.0-rc01 . В этом релизе нет изменений по сравнению с версией 1.11.0-beta01 .

Версия 1.11.0-beta01

20 марта 2024 г.

Выпущена androidx.webkit:webkit:1.11.0-beta01 без каких-либо существенных изменений. Версия 1.11.0-beta01 содержит следующие коммиты .

Версия 1.11.0-alpha02

21 февраля 2024 г.

Выпущена версия androidx.webkit:webkit:1.11.0-alpha02 . Версия 1.11.0-alpha02 содержит следующие коммиты.

Новые функции

  • Добавьте методы setAudioMuted и isAudioMuted для отключения (и включения) звука WebViews . Этот метод позволит вам предотвратить воспроизведение звука WebView . ( IE7a33 )

Изменения в API

  • Класс URLUtilCompat становится окончательным, поскольку его не следует наследовать. ( I49ec1 )

Версия 1.11.0-alpha01

7 февраля 2024 г.

Выпущена версия androidx.webkit:webkit:1.11.0-alpha01 . Версия 1.11.0-alpha01 содержит следующие коммиты.

Новые функции

  • Добавлена ​​совместимость для URLUtil.guessFileName . Совместимая версия в URLUtilCompat поддерживает разбор заголовков Content-Disposition , использующих атрибут filename* encoded value, как определено в RFC 6266. API совместимости также напрямую предоставляет метод для разбора заголовка Content-Disposition в тех случаях, когда предлагаемое имя файла на основе URL и MIME-типа не требуется. ( If6ae7 , b/309927164 )

Версия 1.10

Версия 1.10.0

24 января 2024 г.

Выпущена версия androidx.webkit:webkit:1.10.0 . Версия 1.10.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.9.0

Версия 1.10.0-rc01

10 января 2024 г.

Выпущена версия androidx.webkit:webkit:1.10.0-rc01 . В этом релизе нет изменений по сравнению с версией 1.10.0-beta01 .

Версия 1.10.0-beta01

13 декабря 2023 г.

Выпущена версия androidx.webkit:webkit:1.10.0-beta01 . Версия 1.10.0-beta01 содержит следующие коммиты.

  • Функциональных изменений по сравнению с 1.10.0-alpha01 нет.

Версия 1.10.0-alpha01

29 ноября 2023 г.

Выпущена версия androidx.webkit:webkit:1.10.0-alpha01 . Версия 1.10.0-alpha01 содержит следующие коммиты.

Новые функции

  • В WebSettingsCompat добавлен новый API для управления экспериментальным поведением API обеспечения целостности мультимедиа Android WebView: его можно либо полностью отключить, либо ограничить передачу идентификатора приложения в ответе API. Это можно переключать для всех источников и для каждого источника в отдельности.

Версия 1.9

Версия 1.9.0

29 ноября 2023 г.

Выпущена версия androidx.webkit:webkit:1.9.0 . Версия 1.9.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.8.0

  • Добавлен новый API для многопрофильных представлений (WebViews).
    • Интерфейс Profile предоставляет различные API для получения связанных с этим профилем данных, таких как его имя, GeoLocationPermissions , ServiceWorkerController , CookieManager и WebStorage . Эти объекты являются специфичными для данного профиля, и информация не передается между различными профилями в приложении.
    • Профиль, используемый экземпляром WebView , можно изменить с помощью метода WebViewCompat#setProfile и получить с помощью метода WebViewCompat#getProfile.
    • Новая функция ProfileStore позволяет управлять доступными профилями в вашем приложении, включая профиль по умолчанию.
    • Существующие API WebView, такие как CookieManager#getInstance, будут по-прежнему работать в профиле по умолчанию.
  • Добавлен API для внедрения и выполнения JavaScript перед загрузкой страницы.
    • API WebViewCompat#addDocumentStartJavascript позволяет приложениям внедрять скрипты в WebView , которые гарантированно выполняются до выполнения каких-либо скриптов страницы. API позволяет приложению указать целевой список источников, на которых должен быть включен скрипт, гарантируя, что он будет выполняться только на нужных страницах. В отличие от WebView#evaluateJavascript , этот API позволяет выполнять скрипты во встроенных Iframe при их загрузке. Приложения могут использовать этот новый API в сочетании с WebViewCompat#addWebMessageListener для надежной двусторонней связи с JavaScript на странице.
  • Добавлены API для изменения способа регистрации событий в рамках механизма атрибуции отчетов в песочнице конфиденциальности.
    • Мы добавили новый API WebSettingsCompat#setAttributionRegistrationBehavior , который позволяет разработчикам настраивать, регистрируются ли источники и триггеры атрибуции как исходящие из самого приложения или из веб-контента в WebView. Этот метод также можно использовать для отключения отчетов об атрибуции в WebView. Кроме того, мы добавили новый API WebSettingsCompat#getAttributionRegistrationBehavior для получения текущего поведения.
    • Для получения более подробной информации см. документацию по «песочнице конфиденциальности» .
  • Добавлены API для переопределения метаданных пользовательского агента для подсказок клиента.
    • Мы представили новый API, WebSettingsCompat#setUserAgentMetadata, для переопределения метаданных пользовательского агента для WebView, используемых для заполнения подсказок клиента пользовательского агента, а также добавили еще один новый API WebSettingsCompat#getUserAgentMetadata для получения текущих переопределений пользовательского агента. Мы рекомендуем приложениям использовать новый API для установки правильных значений переопределения всякий раз, когда приложение изменяет строку пользовательского агента по умолчанию с помощью WebSettings.setUserAgentString, чтобы гарантировать использование правильных значений во всех ситуациях.

Версия 1.9.0-rc01

15 ноября 2023 г.

Выпущена версия androidx.webkit:webkit:1.9.0-rc01 . В этом релизе нет изменений по сравнению с версией 1.9.0-beta01 .

Версия 1.9.0-beta01

1 ноября 2023 г.

Выпущена версия androidx.webkit:webkit:1.9.0-beta01 . Версия 1.9.0-beta01 содержит следующие коммиты.

Изменения в API

  • Исправлена ​​проблема с возможностью получения значений NULL в API метаданных пользовательского агента. Мы обновили класс BrandVersion , чтобы он использовал шаблон проектирования Builder, и обеспечили согласованность в отношении возможности получения значений NULL для геттеров и сеттеров класса UserAgentMetadata . ( Ibf195 )
  • Аннотирование ProfileStore , WebViewCompat#setProfile и WebViewCompat.getProfile с помощью @UiThread . ( I499b2 )

Версия 1.9.0-alpha01

18 октября 2023 г.

Выпущена версия androidx.webkit:webkit:1.9.0-alpha01 . Версия 1.9.0-alpha01 содержит следующие коммиты.

Новые функции

  • Мы добавили API для работы с несколькими профилями, который позволяет создавать отдельные сеансы просмотра для каждого WebViews ; каждый профиль имеет свои собственные данные (например, cookie). Вы можете создавать профили, назначать их экземплярам WebView и получать к ним доступ позже для любых данных. Существует класс-синглтон ProfileStore , который помогает управлять профилями путем создания или удаления с помощью API: getOrCreateProfile , getProfile , getAllProfileNames и deleteProfile . Класс Profile будет иметь различные API для получения связанных с этим профилем данных, таких как его имя, GeoLocationPermissions , ServiceWorkerController , CookieManager и WebStorage . Каждый WebView по умолчанию будет работать с профилем по умолчанию, однако вы можете изменить это с помощью WebViewCompat#setProfile В связи с этим, профиль WebView можно получить с помощью WebViewCompat#getProfile . ( I32d22 )
  • Добавлены API для изменения способа регистрации событий Attribution Reporting. Мы представили новый API WebSettingsCompat#setAttributionRegistrationBehavior , который позволяет разработчикам настраивать, регистрируются ли источники и триггеры как исходящие из самого приложения или из веб-контента в WebView . Этот метод также можно использовать для отключения Attribution Reporting в WebView . Кроме того, мы добавили новый API WebSettingsCompat#getAttributionRegistrationBehavior для получения текущего поведения. Для получения дополнительной информации см. документацию Privacy Sandbox . ( I661f2 )
  • Добавлены API для переопределения метаданных user-agent. Мы представили новый API WebSettingsCompat#setUserAgentMetadata для переопределения метаданных user-agent для WebView, которые используются для заполнения подсказок клиента user-agent, а также добавили еще один новый API WebSettingsCompat#getUserAgentMetadata для получения текущих переопределений user-agent. Мы рекомендуем приложениям использовать новый API для установки правильных значений переопределения вместо того, чтобы полагаться на изменение user-agent. ( I74500 )
  • Добавьте API для внедрения JavaScript, который будет выполняться во время загрузки страницы. API WebViewCompat.addDocumentStartJavascript позволяет приложениям внедрять скрипты в WebView, которые будут выполняться до выполнения каких-либо скриптов страницы. API позволяет приложению указать целевой список источников, на которых будет включен скрипт, гарантируя, что он будет выполняться только на нужных страницах. В отличие от WebView.evaluateJavascript , этот API позволит выполнять скрипты во встроенных Iframe при их загрузке. ( Ide063 )

Версия 1.8

Версия 1.8.0

6 сентября 2023 г.

Выпущена версия androidx.webkit:webkit:1.8.0 . Версия 1.8.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.7.0

Версия 1.8.0-rc01

9 августа 2023 г.

androidx.webkit:webkit:1.8.0-rc01 выпущен без изменений по сравнению с 1.8.0-beta01 . Версия 1.8.0-rc01 содержит следующие коммиты.

Версия 1.8.0-beta01

26 июля 2023 г.

Выпущена версия androidx.webkit:webkit:1.8.0-beta01 без изменений по сравнению с 1.8.0-alpha01 . Версия 1.8.0-beta01 содержит следующие коммиты.

Версия 1.8.0-alpha01

7 июня 2023 г.

Выпущена версия androidx.webkit:webkit:1.8.0-alpha01 . Версия 1.8.0-alpha01 содержит следующие коммиты.

Изменения в API

  • См. раздел «Внешние источники».

Внешний вклад

  • Добавлена ​​поддержка передачи ArrayBuffer через WebMessagePortCompat#postMessage , JsReplyProxy#postMessage и WebViewCompat#postWebMessage , получения ArrayBuffer из JavaScript через WebMessagePortCompat и WebMessageListener , а также получения передаваемого ArrayBuffer из JavaScript через WebMessagePortCompat . Обратите внимание, что этот API будет доступен только начиная с версии WebView 116. ( Ie7567 , b/251152171 )

Версия 1.7

Версия 1.7.0

24 мая 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0 . Версия 1.7.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.6.0

  • Мы добавили поддержку перетаскивания изображений в WebView . Вы можете разрешить пользователям перетаскивать изображения за пределы WebView , добавив новый DropDataContentProvider в манифест вашего приложения, как описано в документации к классу.
  • Мы добавили API-функцию ProcessGlobalConfig#setDirectoryBasePaths(Context,File,File) , которую можно использовать для установки базовых каталогов, которые WebView будет использовать для текущего процесса. Как и все методы ProcessGlobalConfig , этот метод необходимо вызывать до создания первого экземпляра WebView . Этот метод добавлен для того, чтобы предоставить фреймворку Android возможность настраивать параметры WebView . Для приложений общего назначения использование этого метода не рекомендуется.

Версия 1.7.0-rc01

10 мая 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0-rc01 без изменений по сравнению с 1.7.0-beta01 . Версия 1.7.0-rc01 содержит следующие коммиты.

Версия 1.7.0-beta01

5 апреля 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0-beta01 . Версия 1.7.0-beta01 содержит следующие коммиты.

Изменения в API

  • Небольшое изменение флага функции и названия метода, а также изменение способа приема переменной setDirectoryBasePaths() на `File` вместо `String` ( Ib0d0a ).

Версия 1.7.0-alpha03

8 марта 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0-alpha03 . Версия 1.7.0-alpha03 содержит следующие коммиты.

Изменения в API

  • Добавьте API ProcessGlobalConfig#setDirectoryBasePath(String, String) , который можно использовать для установки базовых каталогов, которые WebView будет использовать для текущего процесса. ( Ibd1a1 , b/250553687 )

Исправлены ошибки

  • Исправлена ​​ошибка сборки, вызванная некорректным правилом ProGuard при использовании DexGuard ( Ia65c2 , b/270034835 ).

Версия 1.7.0-alpha02

8 февраля 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0-alpha02 . Версия 1.7.0-alpha02 содержит следующие коммиты.

Исправлены ошибки

  • Исправлены ошибки в документации для DropDataContentProvider .

Версия 1.7.0-alpha01

25 января 2023 г.

Выпущена версия androidx.webkit:webkit:1.7.0-alpha01 . Версия 1.7.0-alpha01 содержит следующие коммиты.

Новые функции

  • Мы добавляем поддержку перетаскивания изображений в WebView . Вы можете разрешить пользователям перетаскивать изображения за пределы WebView , добавив новый DropDataContentProvider в манифест вашего приложения. ( 05a1a6 )

Версия 1.6

Версия 1.6.1

22 марта 2023 г.

Выпущена версия androidx.webkit:webkit:1.6.1 . Версия 1.6.1 содержит следующие коммиты.

Исправлены ошибки

  • Исправлена ​​ошибка синтаксического анализа ProGuard ( Ia65c2 )

Версия 1.6.0

25 января 2023 г.

Выпущена версия androidx.webkit:webkit:1.6.0 . Версия 1.6.0 содержит следующие коммиты.

Важные изменения с версии 1.5.0

  • Добавлен новый API ProcessGlobalConfig, позволяющий приложениям предоставлять параметры конфигурации, которые необходимо установить до загрузки WebView, например, суффикс каталога данных WebView. Конфигурацию следует устанавливать и применять как можно раньше во время запуска приложения, чтобы гарантировать, что это произойдет до того, как какой-либо другой поток сможет вызвать метод, загружающий WebView в процесс.
  • Добавлен новый API CookieManagerCompat , расширяющий функциональность android.webkit.CookieManager за счет нового метода getCookieInfo , который извлекает все атрибуты для всех cookie-файлов, установленных на определенном URL-адресе. Это отличается от существующего API getCookie в CookieManager , который возвращает только атрибуты имени и значения cookie-файлов.
  • В WebSettingsCompat появились новые методы для включения/отключения действия EnterpriseAuthenticationAppLinkPolicy если она задана администратором в WebView , а также для получения текущей настройки . Эта функция позволяет WebView открывать приложение аутентификации вместо URL-адреса аутентификации. Эта функция не действует на устройствах, не управляемых корпоративной политикой.
  • Добавление нового API в WebSettingsCompat , позволяющего приложениям явно отправлять имя пакета приложения в заголовке X-Requested-With на разрешенные источники. Традиционно этот заголовок отправлялся при каждом запросе из WebView .

Версия 1.6.0-rc01

11 января 2023 г.

Выпущена версия androidx.webkit:webkit:1.6.0-rc01 . Версия 1.6.0-rc01 содержит следующие коммиты.

Исправлены ошибки

  • Исправлена NullPointerException в WebViewFeature.isStartupFeatureSupported(Context, String) при работе с SDK < L. ( Ic7292 )

Версия 1.6.0-beta01

7 декабря 2022 г.

Выпущена версия androidx.webkit:webkit:1.6.0-beta01 . Версия 1.6.0-beta01 содержит следующие коммиты.

Изменения в API

  • ProcessGlobalConfig внесены изменения: теперь используется обычный конструктор и статический метод apply. Метод apply следует вызывать только один раз за процесс, как можно раньше, и при повторном вызове будет выброшено исключение IllegalStateException . Объекты ProcessGlobalConfig больше не имеют ограничений на количество вызовов методов set. ( I456c3 )

Версия 1.6.0-alpha03

9 ноября 2022 г.

Выпущена версия androidx.webkit:webkit:1.6.0-alpha03 . Версия 1.6.0-alpha03 содержит следующие коммиты.

Новые функции

  • Добавьте класс ProcessGlobalConfig позволяющий пользователям устанавливать глобальную конфигурацию процесса до загрузки WebView . WebView имеет некоторые глобальные параметры конфигурации процесса, которые нельзя изменить после загрузки WebView (например, каталог данных WebView ). Этот класс позволяет приложениям устанавливать эти параметры. Конфигурацию следует устанавливать и применять как можно раньше во время запуска приложения, чтобы гарантировать, что это произойдет до того, как какой-либо другой поток сможет вызвать метод, загружающий WebView в процесс. ( I7c0e0 , b/250553687 )
  • Добавлен новый API, позволяющий приложениям явно отправлять имя пакета приложения в заголовке X-Requested-With на разрешенные источники. Традиционно этот заголовок отправлялся при каждом запросе из WebView . ( I0adfe , b/226552535 )

Изменения в API

  • API WebSettingsCompat#setAlgorithmicDarkeningAllowed поддерживается во всех версиях Android, начиная с WebView 105 и выше. Предыдущие версии WebView поддерживали этот API только на Android Q и более поздних версиях. В результате этот API больше не помечен как @RequiresApi(Build.VERSION_CODES.Q) . ( I3ac1d )

Версия 1.6.0-alpha02

24 октября 2022 г.

Выпущена версия androidx.webkit:webkit:1.6.0-alpha02 . Версия 1.6.0-alpha02 содержит следующие коммиты.

Новые функции

  • Добавляет новый класс CookieManagerCompat вместе с API getCookieInfo , который извлекает все атрибуты для всех файлов cookie, установленных на определенном URL. Это отличается от существующего API getCookie в CookieManager , который возвращает только имя и значение файлов cookie. ( I07365 , b/242161756 )

Версия 1.6.0-alpha01

24 августа 2022 г.

Выпущена версия androidx.webkit:webkit:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит следующие коммиты.

Новые функции

  • В WebSettingsCompat добавлены API-функции для включения/отключения действия EnterpriseAuthenticationAppLinkPolicy если она задана администратором в WebView . Эта функция позволяет WebView открывать приложение аутентификации вместо URL-адреса аутентификации. Эта функция не действует на устройствах, не управляемых корпоративной политикой.

Версия 1.5.0

Версия 1.5.0

24 августа 2022 г.

Выпущена версия androidx.webkit:webkit:1.5.0 . Версия 1.5.0 содержит следующие коммиты.

Важные изменения по сравнению с версией 1.4.0

  • Новый API setAlgorithmicDarkeningAllowed в WebSettingsCompat заменяет старые API setForceDark и setForceDarkStrategy . Приложениям, ориентированным на SDK 33 и выше (T), следует использовать новый API, поскольку старый API больше не будет иметь никакого эффекта для этих приложений.
  • Теперь список URL-адресов, которым разрешено использовать настроенный прокси, можно задать через ProxyCofig.Builder , установив параметр setReverseBypassEnabled в true . В этом случае все остальные URL-адреса будут обходить настроенный прокси.

Версия 1.5.0-rc01

10 августа 2022 г.

androidx.webkit:webkit:1.5.0-rc01 выпущен без изменений по сравнению с 1.5.0-beta01 . Версия 1.5.0-rc01 содержит следующие коммиты.

Версия 1.5.0-beta01

29 июня 2022 г.

Выпущена версия androidx.webkit:webkit:1.5.0-beta01 . Версия 1.5.0-beta01 содержит следующие коммиты.

Изменения в API

  • API, связанные с алгоритмическим затемнением, теперь помечены как требующие уровня API Q. Этот API не будет оказывать никакого влияния на устройства с уровнями API < Q, поскольку темная тема недоступна на этих устройствах. ( I0905e )

Версия 1.5.0-alpha01

18 мая 2022 г.

Выпущена версия androidx.webkit:webkit:1.5.0-alpha01 . Версия 1.5.0-alpha01 содержит следующие коммиты.

Новые функции

  • Добавьте новый метод getVariationsHeader() в класс WebViewCompat для получения значения заголовка X-Client-Data, отправляемого WebView . Возвращаемое значение будет представлять собой закодированный в base64 protobuf-файл ClientVariations .
  • Добавить API в WebSettingsCompat для разрешения/запрета алгоритмического затемнения для приложений с targetSdk >= 33. ( I29597 )

Изменения в API

  • В ProxyCofig.Builder добавлен новый метод для настройки обратного обхода. Установка обратного обхода в значение true означает, что только URL-адреса из списка обхода будут использовать настройки прокси. ( I9eaa2 , b/168728599 )

Исправлены ошибки

  • Исправлена ​​опечатка в документации к темной теме. ( I36ebf , b/194343633 )
  • Исправлена ​​ошибка, из-за которой методы WebViewAssetLoader.Builder непреднамеренно зависели от порядка их выполнения. ( If420d , b/182196765 )

Версия 1.4.0

Версия 1.4.0

16 декабря 2020 г.

Выпущена версия androidx.webkit:webkit:1.4.0 . Версия 1.4.0 содержит следующие коммиты.

Значительные изменения по сравнению с версией 1.3.0

  • Добавлен новый API-функция setSafeBrowsingAllowlist() , заменяющая setSafeBrowsingWhitelist() . Это помогает приложениям обновлять свой код, избегая неполных терминов, при этом поддерживая тот же диапазон версий Android SDK и WebView, что и устаревший API.
  • Исправлена ​​ошибка в функции setProxyOverride, из-за которой правила резервного копирования применялись некорректно.

Версия 1.4.0-rc02

2 декабря 2020 г.

Выпущена версия androidx.webkit:webkit:1.4.0-rc02 . Версия 1.4.0-rc02 содержит следующие коммиты.

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой правила резервного копирования некорректно применялись при использовании setProxyOverride.

Версия 1.4.0-rc01

11 ноября 2020 г.

Выпущена версия androidx.webkit:webkit:1.4.0-rc01 без изменений по сравнению с 1.4.0-beta01 . Версия 1.4.0-rc01 содержит следующие коммиты.

Версия 1.4.0-beta01

14 октября 2020 г.

Выпущена версия androidx.webkit:webkit:1.4.0-beta01 без изменений по сравнению с 1.4.0-alpha01 . Версия 1.4.0-beta01 содержит следующие коммиты.

Версия 1.4.0-alpha01

16 сентября 2020 г.

Выпущена версия androidx.webkit:webkit:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит следующие коммиты.

Изменения в API

  • Добавлен новый API WebViewCompat#setSafeBrowsingAllowlist() , заменяющий setSafeBrowsingWhitelist() . Это помогает приложениям обновлять свой код, избегая неполную терминологию, при этом поддерживая тот же диапазон версий Android SDK и WebView, что и устаревший API. ( I8d65d )

Версия 1.3.0

Версия 1.3.0

19 августа 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0 . Версия 1.3.0 содержит следующие коммиты.

Значительные изменения по сравнению с версией 1.2.0

  • API ForceDarkStrategy предоставляет больше возможностей для управления затемнением WebView (затемнение контента CSS/веб-страниц по сравнению с автоматическим затемнением).
  • WebMessageListener и связанные с ним API предоставляют простой и безопасный механизм для установления связи между веб-контентом и приложением, встроенным в WebView.
  • API-функция isMultiProcessEnabled используется для проверки того, работает ли WebView в многопроцессном режиме. Это стало возможным начиная с Android O и означает, что веб-контент отображается в изолированном процессе рендеринга, отдельном от процесса приложения. Этот изолированный процесс рендеринга может использоваться совместно с другими WebView в том же приложении, но не совместно с другими процессами приложения.

Версия 1.3.0-rc02

5 августа 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-rc02 . Версия 1.3.0-rc02 содержит следующие коммиты.

Исправлены ошибки

  • Это исправляет проблему совместимости, из-за которой WebMessageListener иногда аварийно завершал работу во время локальной разработки, если ваше приложение запускалось с помощью функции мгновенного запуска Android Studio.

Версия 1.3.0-rc01

24 июня 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-rc01 без изменений по сравнению с 1.3.0-beta01 . Версия 1.3.0-rc01 содержит следующие коммиты.

Версия 1.3.0-beta01

10 июня 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-beta01 . Версия 1.3.0-beta01 содержит следующие коммиты.

Новые функции

  • API ForceDarkStrategy для управления затемнением WebView (затемнение контента CSS/веб-страниц или автоматическое затемнение).
  • API WebMessageListener предоставляют простой и безопасный механизм для установления связи между веб-контентом и приложением, встраиваемым в WebView.
  • API MultiProcessEnabled для проверки того, работает ли WebView в многопроцессном режиме.

Версия 1.3.0-alpha03

27 мая 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-alpha03 . Версия 1.3.0-alpha03 содержит следующие коммиты.

Изменения в API

  • Метод addWebMessageListener теперь принимает Set<String> разрешенных правил источников (ранее List<String> ).

Версия 1.3.0-alpha02

29 апреля 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-alpha02 . Версия 1.3.0-alpha02 содержит следующие коммиты.

Новые функции

  • API MultiProcessEnabled для проверки того, работает ли WebView в многопроцессном режиме.

Изменения в API

  • Теперь все константы темной стратегии имеют префикс DARK_STRATEGY .

Версия 1.3.0-alpha01

15 апреля 2020 г.

Выпущена версия androidx.webkit:webkit:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит следующие коммиты.

Новые функции

  • API ForceDarkStrategy для управления затемнением WebView (затемнение контента CSS/веб-страниц или автоматическое затемнение).
  • API WebMessageListener предоставляют простой и безопасный механизм для установления связи между веб-контентом и приложением, встраиваемым в WebView.

Версия 1.2.0

Версия 1.2.0

4 марта 2020 г.

Выпущена версия androidx.webkit:webkit:1.2.0 . Версия 1.2.0 содержит следующие коммиты.

Значительные изменения по сравнению с версией 1.1.0

  • Добавлен API ForceDark для управления отображением WebView в темном режиме.

Версия 1.2.0-rc01

19 февраля 2020 г.

Выпущена версия androidx.webkit:webkit:1.2.0-rc01 без изменений по сравнению с 1.2.0-beta01 . Версия 1.2.0-rc01 содержит следующие коммиты.

Версия 1.2.0-beta01

5 февраля 2020 г.

Выпущена версия androidx.webkit:webkit:1.2.0-beta01 без изменений по сравнению с 1.2.0-alpha01 . Версия 1.2.0-beta01 содержит следующие коммиты .

Версия 1.2.0-alpha01

18 декабря 2019 г.

Выпущена версия androidx.webkit:webkit:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит следующие коммиты .

Новые функции

  • API ForceDark позволяет управлять отображением WebView в темном режиме.

Версия 1.1.0

Версия 1.1.0

7 ноября 2019 г.

Выпущена версия androidx.webkit:webkit:1.1.0 . Версия 1.1.0 содержит следующие коммиты .

Важные изменения с версии 1.0.0

  • API-интерфейсы для получения значений (Getter) в дополнение к функциям setWebViewClient() и setWebChromeClient() .
  • API ProxyController для установки прокси-сервера для сетевых запросов к WebView приложения.
  • API WebViewAssetLoader упрощает загрузку ресурсов, файлов и ресурсов APK из каталога данных приложения посредством перехвата запросов. Это позволяет получать доступ к веб-ресурсам и локальным ресурсам без отключения CORS.
  • API TracingController используется для сбора информации трассировки WebView в целях отладки.
  • API-интерфейсы RenderProcess используются для управления службами рендеринга WebView и для обнаружения случаев, когда некорректно работающее содержимое приводит к зависанию рендереров WebView.
  • Внесены изменения в существующие API, добавлены аннотации, разрешающие значение null ( @NonNull , @Nullable ) и учитывающие потоки ( @UiThread , @WorkerThread ).

Версия 1.1.0-rc01

9 октября 2019 г.

Выпущена версия androidx.webkit:webkit:1.1.0-rc01 . Версия 1.1.0-rc01 содержит следующие коммиты .

Исправлены ошибки

  • Исправлена ​​ошибка, из-за которой setWebViewRenderProcessClient() мог завершиться с ошибкой, если ему передавался нулевой клиент.

Версия 1.1.0-beta01

5 сентября 2019 г.

Выпущена версия androidx.webkit:webkit:1.1.0-beta01 . Список изменений, включенных в эту версию, можно найти здесь .

Новые функции

  • В WebViewAssetLoader добавлен новый InternalStoragePathHandler для загрузки файлов из каталога данных приложения.

изменения API

  • ProxyConfig#getProxyRules() теперь возвращает неизменяемый список экземпляров ProxyRule , который представляет собой новый класс для хранения фильтра схемы и соответствующего ему URL-адреса прокси.

Исправлены ошибки

  • В случае, если WebViewAssetLoader не может определить тип MIME по пути к файлу, по умолчанию используется MIME-тип "text/plain" (а не null).
  • WebViewAssetLoader больше не выдает исключение NullPointerException при загрузке файлов, содержащих специальные символы в именах путей.

Версия 1.1.0-alpha02

7 августа 2019 г.

Выпущена версия androidx.webkit:webkit:1.1.0-alpha02 . Список изменений, включенных в эту версию, можно найти здесь .

Новые функции

  • WebViewAssetLoader предоставляет интерфейс PathHandler , позволяющий приложениям создавать собственные функции обработки путей.

изменения API

  • Класс WebViewAssetLoader теперь является финальным, поскольку его не предполагается наследовать.
  • Реализации WebViewAssetLoader#PathHandler теперь являются публичными и окончательными.
  • Незначительные изменения в названиях методов ProxyConfig.
  • ProxyController : добавлены новые методы addDirect() и addDirect(String) для прямого подключения к серверам; удален метод DIRECT String.
  • Внесены изменения в существующие API, добавлены аннотации, разрешающие значение null ( @NonNull , @Nullable ) и учитывающие потоки ( @UiThread , @WorkerThread ).

Версия 1.1.0-alpha01

7 мая 2019 г.

Выпущена версия androidx.webkit:webkit:1.1.0-alpha01 . Список изменений, включенных в эту версию, можно найти здесь .

Новые функции

  • API-интерфейсы для получения данных, дополняющие setWebViewClient() и setWebChromeClient()
  • API ProxyController для установки прокси-сервера для сетевых запросов к WebView приложения.
  • API AssetLoader упрощает загрузку ресурсов APK-файлов посредством перехвата запросов, позволяя получать доступ к веб-ресурсам без отключения CORS.
  • API TracingController используется для сбора информации трассировки WebView в целях отладки.
  • API-интерфейсы RenderProcess используются для управления службами рендеринга WebView и для обнаружения случаев, когда некорректно работающее содержимое приводит к зависанию рендереров WebView.

Исправлены ошибки

  • Внесены незначительные исправления в форматирование документации для существующих API.