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ă.

  1. 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.
  2. Construiți ProxyConfig dorit 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.
  3. Apelați ProxyController.setProxyOverride() cu acea configurație, un executor și un ascultător de finalizare. Începeți navigarea dependentă din calea de finalizare.
  4. 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ă.

Articole similare