Android WebView: applica l'override del proxy prima della navigazione
Usa il controllo delle funzionalità e la callback di completamento di AndroidX WebKit e considera l'override condiviso dalle WebView in un unico processo.
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.
- 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à. - Costruisci il
ProxyConfigdesiderato 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. - Chiama
ProxyController.setProxyOverride()con quella configurazione, un executor e un listener di completamento. Avvia la navigazione dipendente dal percorso di completamento. - 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.