Navigacija koja zavisi od zamjene proxyja u WebViewu treba početi nakon što se izvrši slušalac završetka zamjene. Postavljanje i trenutno učitavanje stranice ostavlja operaciju u utrci s asinhronim ažuriranjem.

  1. 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 odlaženje direktno može obesmisliti funkciju.
  2. Izgradite željeni ProxyConfig koristeći njegova dokumentovana proxy pravila, sintaksu krajnje tačke i ponašanje zaobilaženja. Za dozvoljenu navigaciju javnim stranicama odaberite 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.
  3. Pozovite ProxyController.setProxyOverride() s tom konfiguracijom, izvršiocem i slušaocem završetka. Započnite zavisnu navigaciju iz putanje završetka.
  4. Kada privremena zamjena završi, obrišite je pomoću clearProxyOverride() i obradite i njeno asinhrono završ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.

Povezani članci