La navegación que depende de una anulación de proxy de WebView debe comenzar después de que se ejecute el receptor de finalización de la anulación. Establecerla y cargar una página de inmediato deja la operación compitiendo con una actualización asíncrona.

  1. Comprueba WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). La compatibilidad depende de la implementación de WebView y de la biblioteca AndroidX WebKit, así como del nivel de API de Android. Define qué ocurre cuando no está disponible; pasar directamente en silencio puede frustrar la función.
  2. Construye el ProxyConfig deseado con sus reglas de proxy documentadas, la sintaxis del extremo y el comportamiento de omisión. Para la navegación permitida a sitios públicos, elige un candidato de la lista de proxies gratuitos cuyo protocolo coincida con una regla compatible con esa implementación de WebView. Una URL PAC, un URI SOCKS y un host sin más son entradas distintas.
  3. Llama a ProxyController.setProxyOverride() con esa configuración, un ejecutor y un receptor de finalización. Inicia la navegación dependiente desde la ruta de finalización.
  4. Cuando termine la anulación temporal, bórrala con clearProxyOverride() y gestiona también su finalización asíncrona.

Da a ese ciclo de vida un único responsable. El ajuste se aplica a los WebView de todo el proceso de la aplicación; cambiarlo repetidamente no puede dar salidas independientes a dos vistas simultáneas. Otros procesos y bibliotecas HTTP tienen sus propias rutas.

Esta interfaz compatible evita depender de receptores privados de cambios de proxy que varían entre versiones de Android. Selecciona el enrutamiento; las credenciales del proxy y la confianza en los certificados siguen usando sus mecanismos compatibles. Un fallo de autenticación o de TLS después de la selección debe diagnosticarse en esa etapa.

Artículos relacionados