Android WebView: aplica a substitución do proxy antes da navegación
Usa a comprobación de funcións e a devolución de finalización de AndroidX WebKit, e ten en conta a substitución que comparten os WebView nun mesmo proceso.
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.
- 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. - Constrúe o
ProxyConfigdesexado 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. - 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. - 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.