WebKit

Trabaja con las API modernas de WebView en Android 5 y versiones posteriores.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
9 de noviembre de 2022 1.5.0 - - 1.6.0-alpha03

Cómo declarar dependencias

Para agregar una dependencia en WebKit, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

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

Kotlin

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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.6

Versión 1.6.0-alpha03

9 de noviembre de 2022

Se lanzó androidx.webkit:webkit:1.6.0-alpha03. La versión 1.6.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó la clase ProcessGlobalConfig que permite a los usuarios establecer la configuración global del proceso antes de cargar WebView. WebView tiene algunos parámetros de configuración globales de procesos que no se pueden cambiar una vez que se cargó WebView (p. ej., el directorio de datos WebView). Esta clase permite que las apps establezcan estos parámetros. La configuración debe establecerse y aplicarse lo antes posible durante el inicio de la aplicación a fin de garantizar que ocurra antes de que otro subproceso pueda llamar a un método que cargue WebView en el proceso (I7c0e0, b/250553687).
  • Se agregó una nueva API para permitir que las aplicaciones envíen explícitamente el nombre del paquete de la app en el encabezado X-Requested-With a los orígenes permitidos. Tradicionalmente, el encabezado se envía en cada solicitud de WebView (I0adfe, b/226552535).

Cambios en la API

  • La API de WebSettingsCompat#setAlgorithmicDarkeningAllowed es compatible con todas las versiones de Android en WebView versión 105 y posteriores. Las versiones anteriores de WebView solo admitían la API en Android Q y versiones posteriores. Como resultado, esta API ya no está marcada como @RequiresApi(Build.VERSION_CODES.Q) (I3ac1d).

Versión 1.6.0-alpha02

24 de octubre de 2022

Lanzamiento de androidx.webkit:webkit:1.6.0-alpha02. La versión 1.6.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó una nueva clase CookieManagerCompat junto con una API de getCookieInfo, que recupera todos los atributos de todas las cookies configuradas en una URL específica. Esto difiere de la API de getCookie existente en CookieManager, que solo muestra los atributos de nombre y valor de las cookies (I07365, b/242161756).

Versión 1.6.0-alpha01

24 de agosto de 2022

Se lanzó androidx.webkit:webkit:1.6.0-alpha01. La versión 1.6.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron APIs en WebSettingsCompat para habilitar/inhabilitar el efecto de EnterpriseAuthenticationAppLinkPolicy si lo configura el administrador en WebView. Esta función permite que WebView abra una app de autenticación en lugar de abrir la URL de autenticación. Esta función no tiene efecto en dispositivos que no son administrados por una política empresarial.

Versión 1.5.0

Versión 1.5.0

24 de agosto de 2022

Se lanzó androidx.webkit:webkit:1.5.0. La versión 1.5.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.4.0

  • Una nueva API de setAlgorithmicDarkeningAllowed en WebSettingsCompat reemplaza las APIs anteriores de setForceDark y setForceDarkStrategy. Las apps orientadas al SDK 33 y versiones posteriores (T) deberían usar la API nueva porque la anterior ya no tendrá ningún efecto en esas apps.
  • Ahora se puede configurar una lista de URLs permitidas para usar el proxy configurado a través de ProxyCofig.Builder configurando setReverseBypassEnabled en true. Cuando esto esté activo, todas las demás URLs omitirán el proxy configurado.

Versión 1.5.0-rc01

10 de agosto de 2022

Lanzamiento de androidx.webkit:webkit:1.5.0-rc01 sin cambios desde 1.5.0-beta01. La versión 1.5.0-rc01 contiene estas confirmaciones.

Versión 1.5.0-beta01

29 de junio de 2022

Se lanzó androidx.webkit:webkit:1.5.0-beta01. La versión 1.5.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • Las APIs relacionadas con el oscurecimiento alogrítmico ahora están anotadas para requerir el nivel de API Q. La API no tendrá ningún efecto en los niveles de API menores que Q, ya que el tema oscuro no es una opción en estos dispositivos (I0905e).

Versión 1.5.0-alpha01

18 de mayo de 2022

Lanzamiento de androidx.webkit:webkit:1.5.0-alpha01. La versión 1.5.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Agregamos un nuevo método getVariationsHeader() en WebViewCompat para obtener el valor del encabezado de datos del cliente X enviado por WebView. El valor mostrado será un protobuf de ClientVariations codificado en base64.
  • Se agregaron APIs en WebSettingsCompat para permitir o no el oscurecimiento algorítmico para la app con targetSdk >= 33 (I29597).

Cambios en la API

  • Agregamos un nuevo método en ProxyCofig.Builder para configurar la omisión inversa. Si estableces la omisión inversa como verdadera, solo las URLs de la lista de omisión utilizarán la configuración de proxy (I9eaa2, b/168728599).

Correcciones de errores

  • Se corrigió un error de ortografía en la documentación sobre temas oscuros (I36ebf, b/194343633).
  • Se corrigió un error por el cual los métodos WebViewAssetLoader.Builder dependían involuntariamente del orden (If420d, b/182196765).

Versión 1.4.0

Versión 1.4.0

16 de diciembre de 2020

Lanzamiento de androidx.webkit:webkit:1.4.0. La versión 1.4.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.3.0

  • Se agregó una nueva API, setSafeBrowsingAllowlist(), para reemplazar a setSafeBrowsingWhitelist(). Esto ayuda a que las apps actualicen su código con el objeto de evitar terminología no inclusiva sin dejar de admitir el mismo conjunto de SDK de Android y versiones de WebView como la API obsoleta.
  • Se corrigió un error en setProxyOverride que causaba que las reglas de resguardo no se aplicaran de forma correcta.

Versión 1.4.0-rc02

2 de diciembre de 2020

Lanzamiento de androidx.webkit:webkit:1.4.0-rc02. La versión 1.4.0-rc02 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigieron las reglas de resguardo que no se aplicaban correctamente cuando se usaba setProxyOverride.

Versión 1.4.0-rc01

11 de noviembre de 2020

Lanzamiento de androidx.webkit:webkit:1.4.0-rc01 sin cambios desde 1.4.0-beta01. La versión 1.4.0-rc01 contiene estas confirmaciones.

Versión 1.4.0-beta01

14 de octubre de 2020

Lanzamiento de androidx.webkit:webkit:1.4.0-beta01 sin cambios desde 1.4.0-alpha01. La versión 1.4.0-beta01 contiene estas confirmaciones.

Versión 1.4.0-alpha01

16 de septiembre de 2020

Lanzamiento de androidx.webkit:webkit:1.4.0-alpha01. La versión 1.4.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó una nueva API, WebViewCompat#setSafeBrowsingAllowlist(), para reemplazar la setSafeBrowsingWhitelist(). Esto ayuda a que las apps actualicen su código con el objeto de evitar terminología no inclusiva sin dejar de admitir el mismo conjunto de SDK de Android y versiones de WebView como API obsoleta. (I8d65d)

Versión 1.3.0

Versión 1.3.0

19 de agosto de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0. La versión 1.3.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.2.0

  • La API de ForceDarkStrategy proporciona un mayor control del oscurecimiento de WebView (oscurecimiento de CSS/contenido web en comparación con el oscurecimiento automático).
  • WebMessageListener y sus API relacionadas proporcionan un mecanismo simple y seguro para establecer la comunicación entre el contenido web y la app de incorporación de WebView.
  • La API de isMultiProcessEnabled permite comprobar si WebView se ejecuta en modo de procesos múltiples. Esto es posible a partir de Android O y significa que el contenido web se renderiza en un proceso, en zona de pruebas, aislado del proceso de la aplicación. Este procesador de zona de pruebas se puede compartir con otros WebViews en la misma aplicación, pero no se comparte con otros procesos de aplicaciones.

Versión 1.3.0-rc02

5 de agosto de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-rc02. La versión 1.3.0-rc02 contiene estas confirmaciones.

Correcciones de errores

  • Esto soluciona un problema de compatibilidad por el que WebMessageListener a veces fallaba durante el desarrollo local si tu app se iniciaba con la función Instant Run de Android Studio.

Versión 1.3.0-rc01

24 de junio de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-rc01 sin cambios desde 1.3.0-beta01. La versión 1.3.0-rc01 contiene estas confirmaciones.

Versión 1.3.0-beta01

10 de junio de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-beta01. La versión 1.3.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • La API de ForceDarkStrategy permite controlar el oscurecimiento de WebView (oscurecimiento de CSS/contenido web en comparación con el oscurecimiento automático).
  • Las API de WebMessageListener proporcionan un mecanismo simple y seguro para establecer la comunicación entre el contenido web y la app de incorporación de WebView.
  • La API de MultiProcessEnabled permite comprobar si WebView se ejecuta en modo de procesos múltiples.

Versión 1.3.0-alpha03

27 de mayo de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-alpha03. La versión 1.3.0-alpha03 contiene estas confirmaciones.

Cambios en la API

  • El método addWebMessageListener ahora recibe un Set<String> de reglas de origen permitidas (anteriormente, un List<String>).

Versión 1.3.0-alpha02

29 de abril de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-alpha02. La versión 1.3.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • API de MultiProcessEnabled para comprobar si WebView se ejecuta en modo de procesos múltiples.

Cambios en la API

  • Todas las constantes de estrategia oscura ahora tienen el prefijo DARK_STRATEGY.

Versión 1.3.0-alpha01

15 de abril de 2020

Lanzamiento de androidx.webkit:webkit:1.3.0-alpha01. La versión 1.3.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • API de ForceDarkStrategy para controlar el oscurecimiento de WebView (oscurecimiento de CSS/contenido web en comparación con el oscurecimiento automático).
  • Las API de WebMessageListener proporcionan un mecanismo simple y seguro para establecer la comunicación entre el contenido web y la app de incorporación de WebView.

Versión 1.2.0

Versión 1.2.0

4 de marzo de 2020

Lanzamiento de androidx.webkit:webkit:1.2.0. La versión 1.2.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.1.0

  • Se agregó la API de ForceDark para controlar si se deberían procesar WebViews en modo oscuro.

Versión 1.2.0-rc01

19 de febrero de 2020

Lanzamiento de androidx.webkit:webkit:1.2.0-rc01 sin cambios desde 1.2.0-beta01. La versión 1.2.0-rc01 contiene estas confirmaciones.

Versión 1.2.0-beta01

5 de febrero de 2020

Lanzamiento de androidx.webkit:webkit:1.2.0-beta01 sin cambios desde 1.2.0-alpha01. La versión 1.2.0-beta01 contiene estas confirmaciones.

Versión 1.2.0-alpha01

18 de diciembre de 2019

Lanzamiento de androidx.webkit:webkit:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó la API de ForceDark para controlar si se debería procesar WebViews en modo oscuro.

Versión 1.1.0

Versión 1.1.0

7 de noviembre de 2019

Lanzamiento de androidx.webkit:webkit:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.0.0

  • API de Getter para complementar setWebViewClient() y setWebChromeClient()
  • API de ProxyController para establecer un proxy de solicitud de red para WebViews de una app
  • API de WebViewAssetLoader para simplificar la carga de activos, recursos y archivos APK desde el directorio de datos de la app mediante la interceptación de solicitudes (esto permite el acceso a recursos web y locales sin inhabilitar CORS)
  • API de TracingController para recopilar información de seguimiento de WebView con fines de depuración
  • API de RenderProcess para administrar los servicios de procesamiento de WebView y detectar cuándo el contenido con mal comportamiento hace que los procesadores de WebView no respondan
  • Se actualizaron las API existentes para que incluyan anotaciones de nulabilidad (@NonNull, @Nullable) y de subprocesos (@UiThread, @WorkerThread).

Versión 1.1.0-rc01

9 de octubre de 2019

Lanzamiento de androidx.webkit:webkit:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Corrección de errores

  • Se solucionó un problema en el que setWebViewRenderProcessClient() podía bloquearse si se pasaba un cliente nulo.

Versión 1.1.0-beta01

5 de septiembre de 2019

Lanzamiento de androidx.webkit:webkit:1.1.0-beta01. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Nuevas funciones

  • Se agregó un nuevo objeto InternalStoragePathHandler en WebViewAssetLoader para cargar archivos desde el directorio de datos de la app.

Cambios en la API

  • ProxyConfig#getProxyRules() ahora muestra una lista no modificable de instancias ProxyRule, que es una nueva clase para contener un filtro de esquema y su URL proxy correspondiente.

Correcciones de errores

  • WebViewAssetLoader usa de forma predeterminada un tipo de MIME "text/plain" (en lugar de nulo) cuando no puede adivinar el tipo de MIME desde la ruta del archivo.
  • WebViewAssetLoader ya no arroja un objeto NullPointerException cuando se cargan archivos con caracteres especiales en sus nombres de ruta de acceso.

Versión 1.1.0-alpha02

7 de agosto de 2019

Lanzamiento de androidx.webkit:webkit:1.1.0-alpha02. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Nuevas funciones

  • WebViewAssetLoader expone la interfaz PathHandler para permitir que las apps creen una funcionalidad personalizada de administración de rutas de acceso.

Cambios en la API

  • Ahora, WebViewAssetLoader es una clase final, ya que no debe subclasificarse.
  • Las implementaciones de WebViewAssetLoader#PathHandler ahora son públicas y finales.
  • Se realizaron cambios pequeños en los nombres de los métodos ProxyConfig.
  • ProxyController: Se agregaron nuevos métodos addDirect() y addDirect(String) para conectarse directamente a los servidores. Se quitó la cadena DIRECTA.
  • Se actualizaron las API existentes para que incluyan anotaciones de nulabilidad (@NonNull, @Nullable) y de subprocesos (@UiThread, @WorkerThread).

Versión 1.1.0-alpha01

7 de mayo de 2019

Lanzamiento de androidx.webkit:webkit:1.1.0-alpha01. Para conocer las confirmaciones incluidas en esta versión, consulta este vínculo.

Nuevas funciones

  • API de Getter para complementar setWebViewClient() y setWebChromeClient()
  • API de ProxyController para establecer un proxy de solicitud de red para WebViews de una app
  • API de AssetLoader para simplificar la carga de activos y recursos de APK mediante la interceptación de solicitudes, lo que permite el acceso a los recursos web sin inhabilitar CORS
  • API de TracingController para recopilar información de seguimiento de WebView con fines de depuración
  • API de RenderProcess para administrar los servicios de procesamiento de WebView y detectar cuándo el contenido con mal comportamiento hace que los procesadores de WebView no respondan

Corrección de errores

  • Se hicieron correcciones menores al formato de documentación para las API existentes.