A navegación que depende dunha substitución de proxy de WebView debe comezar despois de que se execute o oínte de finalización da substitución. Establecela e cargar unha páxina de inmediato deixa a operación competindo cunha actualización asíncrona.

  1. Comproba WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). A compatibilidade depende da implementación de WebView e da biblioteca AndroidX WebKit, así como do nivel de API de Android. Define que ocorre cando non está dispoñible; pasar directamente en silencio pode frustrar a función.
  2. Constrúe o ProxyConfig desexado coas súas regras de proxy documentadas, a sintaxe do extremo e o comportamento de omisión. Para a navegación permitida a sitios públicos, escolle un candidato da lista de proxies gratuítos cuxo protocolo coincida cunha regra compatible con esa implementación de WebView. Un URL PAC, un URI SOCKS e un host espido son entradas distintas.
  3. Chama ProxyController.setProxyOverride() con esa configuración, un executor e un oínte de finalización. Inicia a navegación dependente desde a ruta de finalización.
  4. Cando remate a substitución temporal, bórraa con clearProxyOverride() e xestiona tamén a súa finalización asíncrona.

Dálle a ese ciclo de vida un único responsable. O axuste aplícase aos WebView de todo o proceso da aplicación; cambialo repetidamente non pode dar saídas independentes a dúas vistas simultáneas. Outros procesos e bibliotecas HTTP teñen as súas propias rutas.

Esta interface compatible evita depender de oíntes privados de cambios de proxy que varían entre versións de Android. Selecciona o enrutamento; as credenciais do proxy e a confianza nos certificados seguen usando os seus mecanismos compatibles. Un fallo de autenticación ou de TLS despois da selección debe diagnosticarse nesa etapa.

Artigos relacionados