Android WebView: pas de proxy-overschrijving toe vóór navigatie
Gebruik de functiecontrole en de voltooiingscallback van AndroidX WebKit, en houd rekening met de overschrijving die WebViews in één proces delen.
Navigatie die afhangt van een proxy-overschrijving in WebView moet beginnen nadat de voltooiingslistener van de overschrijving is uitgevoerd. Deze instellen en meteen een pagina laden laat de bewerking racen met een asynchrone update.
- Controleer
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Ondersteuning hangt af van de WebView-implementatie en de AndroidX WebKit-bibliotheek en van het API-niveau van Android. Bepaal wat er gebeurt als deze ontbreekt; stilzwijgend direct doorgaan kan de functie tenietdoen. - Bouw de beoogde
ProxyConfigmet de gedocumenteerde proxyregels, de eindpuntsyntaxis en het omzeilingsgedrag. Kies voor toegestane navigatie naar openbare sites een kandidaat uit de lijst met gratis proxy's waarvan het protocol overeenkomt met een regel die die WebView-implementatie ondersteunt. Een PAC-URL, SOCKS-URI en kale host zijn verschillende invoer. - Roep
ProxyController.setProxyOverride()aan met die configuratie, een executor en een voltooiingslistener. Begin afhankelijke navigatie vanuit het voltooiingspad. - Wanneer de tijdelijke overschrijving eindigt, wis deze met
clearProxyOverride()en verwerk ook de asynchrone voltooiing ervan.
Geef die levenscyclus één eigenaar. De instelling geldt voor WebViews in het hele applicatieproces; herhaald wijzigen kan twee gelijktijdige weergaven geen onafhankelijke uitgangen geven. Andere processen en HTTP-bibliotheken hebben hun eigen routes.
Deze ondersteunde interface vermijdt afhankelijkheid van privé-proxywijzigingslisteners die per Android-release verschillen. Hij kiest de routering; proxyreferenties en certificaatvertrouwen gebruiken nog steeds hun ondersteunde mechanismen. Een authenticatie- of TLS-fout na de selectie moet in die fase worden gediagnosticeerd.