Navigering som beror på en proxy-överstyrning i WebView bör starta efter att överstyrningens slutförandelyssnare har körts. Att sätta den och direkt läsa in en sida låter åtgärden tävla med en asynkron uppdatering.

  1. Kontrollera WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Stödet beror på WebView-implementeringen och AndroidX WebKit-biblioteket samt Androids API-nivå. Definiera vad som händer när den saknas; att gå direkt i tysthet kan omintetgöra funktionen.
  2. Bygg den avsedda ProxyConfig med dess dokumenterade proxyregler, endpoint-syntax och kringgående beteende. För tillåten navigering till offentliga webbplatser, välj en kandidat från listan över gratis proxyservrar vars protokoll matchar en regel som den WebView-implementeringen stöder. En PAC-URL, SOCKS-URI och bar värd är olika indata.
  3. Anropa ProxyController.setProxyOverride() med den konfigurationen, en exekutor och en slutförandelyssnare. Börja beroende navigering från slutförandevägen.
  4. När den tillfälliga överstyrningen upphör, rensa den med clearProxyOverride() och hantera även dess asynkrona slutförande.

Ge den livscykeln en enda ägare. Inställningen gäller för WebView i hela applikationsprocessen; upprepade ändringar kan inte ge två samtidiga vyer oberoende utgångar. Andra processer och HTTP-bibliotek har sina egna rutter.

Detta stödda gränssnitt undviker beroende av privata proxyändringslyssnare som varierar mellan Android-versioner. Det väljer routing; proxyuppgifter och certifikatförtroende använder fortfarande sina stödda mekanismer. Ett autentiserings- eller TLS-fel efter valet måste diagnostiseras i det skedet.

Relaterade artiklar