Android WebView: anvend proxy-tilsidesættelsen før navigation
Brug AndroidX WebKits funktionstjek og fuldførelses-callback, og tag højde for den tilsidesættelse, som WebViews deler i én proces.
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.
- 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. - Byg den tilsigtede
ProxyConfigmed 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. - Kald
ProxyController.setProxyOverride()med den konfiguration, en executor og en fuldførelseslytter. Begynd afhængig navigation fra fuldførelsesstien. - 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.