A navegação que depende de uma substituição de proxy da WebView deve começar depois de o listener de conclusão da substituição ser executado. Defini-la e carregar uma página de imediato deixa a operação a competir com uma atualização assíncrona.

  1. Verifique WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). O suporte depende da implementação da WebView e da biblioteca AndroidX WebKit, bem como do nível de API do Android. Defina o que acontece quando não está disponível; seguir diretamente em silêncio pode anular o recurso.
  2. Construa o ProxyConfig pretendido com as suas regras de proxy documentadas, a sintaxe do endpoint e o comportamento de contorno. Para navegação permitida a sites públicos, escolha um candidato da lista de proxies gratuitos cujo protocolo corresponda a uma regra suportada por essa implementação da WebView. Um URL PAC, um URI SOCKS e um host simples são entradas diferentes.
  3. Chame ProxyController.setProxyOverride() com essa configuração, um executor e um listener de conclusão. Inicie a navegação dependente a partir do caminho de conclusão.
  4. Quando a substituição temporária terminar, limpe-a com clearProxyOverride() e trate também da sua conclusão assíncrona.

Dê a esse ciclo de vida um único responsável. A definição aplica-se às WebViews de todo o processo da aplicação; alterá-la repetidamente não pode dar saídas independentes a duas vistas simultâneas. Outros processos e bibliotecas HTTP têm as suas próprias rotas.

Esta interface suportada evita depender de listeners privados de alteração de proxy que variam entre versões do Android. Seleciona o encaminhamento; as credenciais de proxy e a confiança nos certificados continuam a usar os seus mecanismos suportados. Uma falha de autenticação ou de TLS após a seleção tem de ser diagnosticada nessa fase.

Artigos relacionados