Android WebView: použite prepísanie proxy pred navigáciou
Použite kontrolu funkcie a dokončovací callback AndroidX WebKit a počítajte s prepísaním, ktoré WebView zdieľajú v jednom procese.
Navigácia, ktorá závisí od prepísania proxy v WebView, by mala začať po spustení poslucháča dokončenia prepísania. Nastavenie a okamžité načítanie stránky necháva operáciu pretekať s asynchrónnou aktualizáciou.
- Skontrolujte
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Podpora závisí od implementácie WebView a knižnice AndroidX WebKit, ako aj od úrovne API Androidu. Definujte, čo sa stane, keď chýba; tiché priame pripojenie môže funkciu znegovať. - Vytvorte zamýšľaný
ProxyConfigs jeho dokumentovanými pravidlami proxy, syntaxou koncového bodu a správaním obchádzania. Pre povolenú navigáciu na verejné weby vyberte kandidáta zo zoznamu bezplatných proxy, ktorého protokol zodpovedá pravidlu podporovanému touto implementáciou WebView. PAC URL, SOCKS URI a holý hostiteľ sú rôzne vstupy. - Zavolajte
ProxyController.setProxyOverride()s touto konfiguráciou, exekútorom a poslucháčom dokončenia. Závislú navigáciu spustite z cesty dokončenia. - Keď dočasné prepísanie skončí, vymažte ho pomocou
clearProxyOverride()a ošetrite aj jeho asynchrónne dokončenie.
Dajte tomuto životnému cyklu jedného vlastníka. Nastavenie platí pre WebView v celom procese aplikácie; opakovaná zmena nemôže dvom súčasným zobrazeniam dať nezávislé východy. Iné procesy a knižnice HTTP majú svoje vlastné trasy.
Toto podporované rozhranie sa vyhýba závislosti od súkromných poslucháčov zmeny proxy, ktoré sa medzi vydaniami Androidu líšia. Vyberá smerovanie; prihlasovacie údaje proxy a dôvera k certifikátom stále používajú svoje podporované mechanizmy. Zlyhanie overenia alebo TLS po výbere treba diagnostikovať v tejto fáze.