La navigazione che dipende da un override del proxy della WebView deve iniziare dopo l'esecuzione del listener di completamento dell'override. Impostarlo e caricare subito una pagina lascia l'operazione in gara con un aggiornamento asincrono.

  1. Controlla WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Il supporto dipende dall'implementazione della WebView e dalla libreria AndroidX WebKit, nonché dal livello API di Android. Definisci cosa accade quando manca; passare direttamente in silenzio può vanificare la funzionalità.
  2. Costruisci il ProxyConfig desiderato con le sue regole proxy documentate, la sintassi dell'endpoint e il comportamento di bypass. Per la navigazione consentita verso siti pubblici, scegli un candidato dall'elenco di proxy gratuiti il cui protocollo corrisponda a una regola supportata da quella implementazione della WebView. Un URL PAC, un URI SOCKS e un host nudo sono input diversi.
  3. Chiama ProxyController.setProxyOverride() con quella configurazione, un executor e un listener di completamento. Avvia la navigazione dipendente dal percorso di completamento.
  4. Quando l'override temporaneo termina, cancellalo con clearProxyOverride() e gestisci anche il suo completamento asincrono.

Assegna a questo ciclo di vita un solo responsabile. L'impostazione si applica alle WebView di tutto il processo dell'applicazione; modificarla ripetutamente non può dare uscite indipendenti a due viste simultanee. Gli altri processi e le librerie HTTP hanno le proprie rotte.

Questa interfaccia supportata evita di dipendere da listener privati di cambio proxy che variano tra le versioni di Android. Seleziona l'instradamento; le credenziali del proxy e la fiducia nei certificati usano ancora i loro meccanismi supportati. Un errore di autenticazione o TLS dopo la selezione va diagnosticato in quella fase.

Articoli correlati