Android WebView: primijenite zamjenu proxyja prije navigacije
Koristite provjeru funkcije i povratni poziv dovršetka AndroidX WebKita i uzmite u obzir zamjenu koju dijele WebViewi u jednom procesu.
Navigacija koja zavisi od zamjene proxyja u WebViewu treba da počne nakon što se izvrši slušalac dovršetka zamjene. Postavljanje i trenutno učitavanje stranice ostavlja radnju u trci sa asinhronim ažuriranjem.
- Provjerite
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Podrška zavisi od implementacije WebViewa i biblioteke AndroidX WebKit, kao i od nivoa Android API-ja. Definišite šta se dešava kada ga nema; tiho direktno povezivanje može obesmisliti funkciju. - Izgradite željeni
ProxyConfigsa njegovim dokumentovanim pravilima proxyja, sintaksom krajnje tačke i ponašanjem zaobilaženja. Za dozvoljenu navigaciju javnim stranicama izaberite kandidata sa liste besplatnih proxyja čiji protokol odgovara pravilu koje ta implementacija WebViewa podržava. PAC URL, SOCKS URI i goli host su različiti unosi. - Pozovite
ProxyController.setProxyOverride()sa tom konfiguracijom, izvršiocem i slušaocem dovršetka. Započnite zavisnu navigaciju iz putanje dovršetka. - Kada privremena zamjena završi, obrišite je pomoću
clearProxyOverride()i obradite i njeno asinhrono dovršavanje.
Dajte tom životnom ciklusu jednog vlasnika. Postavka se primjenjuje na WebViewe u cijelom procesu aplikacije; ponovljeno mijenjanje ne može dati dva istovremena prikaza nezavisne izlaze. Drugi procesi i HTTP biblioteke imaju svoje rute.
Ovaj podržani interfejs izbjegava oslanjanje na privatne slušaoce promjene proxyja koji se razlikuju između Android izdanja. On bira usmjeravanje; proxy akreditivi i povjerenje u certifikate i dalje koriste svoje podržane mehanizme. Neuspjeh autentifikacije ili TLS-a nakon odabira treba dijagnostikovati u toj fazi.