Navigation, der afhænger af en proxy-tilsidesættelse i WebView, bør starte, efter at tilsidesættelsens fuldførelseslytter er kørt. Hvis du sætter den og straks indlæser en side, efterlades handlingen i kapløb med en asynkron opdatering.

  1. Kontrollér WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Understøttelsen afhænger af WebView-implementeringen og AndroidX WebKit-biblioteket samt Androids API-niveau. Definer, hvad der sker, når den mangler; at gå direkte i stilhed kan gøre funktionen virkningsløs.
  2. Byg den tilsigtede ProxyConfig med dens dokumenterede proxyregler, endpoint-syntaks og omgåelsesadfærd. Til tilladt navigation på offentlige websteder skal du vælge en kandidat fra listen over gratis proxyer, hvis protokol matcher en regel, som den WebView-implementering understøtter. En PAC-URL, SOCKS-URI og bart værtsnavn er forskellige input.
  3. Kald ProxyController.setProxyOverride() med den konfiguration, en executor og en fuldførelseslytter. Begynd afhængig navigation fra fuldførelsesstien.
  4. Når den midlertidige tilsidesættelse slutter, skal du rydde den med clearProxyOverride() og også håndtere dens asynkrone fuldførelse.

Giv den livscyklus én ejer. Indstillingen gælder for WebViews i hele applikationsprocessen; gentagne ændringer kan ikke give to samtidige visninger uafhængige udgange. Andre processer og HTTP-biblioteker har deres egne ruter.

Denne understøttede grænseflade undgår afhængighed af private proxy-ændringslyttere, der varierer mellem Android-udgivelser. Den vælger routing; proxy-legitimationsoplysninger og certifikattillid bruger stadig deres understøttede mekanismer. En godkendelses- eller TLS-fejl efter valget skal diagnosticeres på det tidspunkt.

Relaterede artikler