Android WebView: aplicați suprascrierea proxy înainte de navigare
Folosiți verificarea funcției și callback-ul de finalizare din AndroidX WebKit și țineți cont de suprascrierea partajată de WebView-uri într-un singur proces.
Navigarea care depinde de o suprascriere proxy a WebView trebuie să înceapă după ce rulează ascultătorul de finalizare al suprascrierii. Setarea ei și încărcarea imediată a unei pagini lasă operațiunea în concurență cu o actualizare asincronă.
- Verificați
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Suportul depinde de implementarea WebView și de biblioteca AndroidX WebKit, precum și de nivelul API al Android. Definiți ce se întâmplă când lipsește; trecerea directă în tăcere poate anula funcția. - Construiți
ProxyConfigdorit cu regulile sale de proxy documentate, sintaxa punctului final și comportamentul de ocolire. Pentru navigarea permisă către site-uri publice, alegeți un candidat din lista de proxy-uri gratuite al cărui protocol corespunde unei reguli acceptate de acea implementare WebView. Un URL PAC, un URI SOCKS și un host simplu sunt intrări diferite. - Apelați
ProxyController.setProxyOverride()cu acea configurație, un executor și un ascultător de finalizare. Începeți navigarea dependentă din calea de finalizare. - Când suprascrierea temporară se termină, ștergeți-o cu
clearProxyOverride()și gestionați și finalizarea ei asincronă.
Dați acestui ciclu de viață un singur proprietar. Setarea se aplică WebView-urilor din întregul proces al aplicației; modificarea repetată nu poate oferi două vizualizări simultane ieșiri independente. Alte procese și biblioteci HTTP au propriile rute.
Această interfață acceptată evită dependența de ascultători privați de modificare a proxy-ului care diferă între versiunile Android. Ea selectează rutarea; acreditările proxy și încrederea în certificate folosesc în continuare mecanismele acceptate. O eroare de autentificare sau TLS după selecție trebuie diagnosticată în acea etapă.