Navigace, která závisí na přepsání proxy v WebView, by měla začít poté, co se spustí posluchač dokončení přepsání. Nastavit ho a hned načíst stránku znamená, že operace závodí s asynchronní aktualizací.

  1. Zkontrolujte WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Podpora závisí na implementaci WebView a knihovně AndroidX WebKit i na úrovni API Androidu. Definujte, co se stane, když chybí; tiché přímé připojení může funkci zmařit.
  2. Sestavte zamýšlený ProxyConfig podle jeho dokumentovaných pravidel proxy, syntaxe koncového bodu a chování obejití. Pro povolenou navigaci na veřejné weby vyberte kandidáta ze seznamu bezplatných proxy, jehož protokol odpovídá pravidlu, které tato implementace WebView podporuje. PAC URL, SOCKS URI a holý hostitel jsou různé vstupy.
  3. Zavolejte ProxyController.setProxyOverride() s touto konfigurací, exekutorem a posluchačem dokončení. Závislou navigaci spusťte z cesty dokončení.
  4. Když dočasné přepsání skončí, vymažte ho pomocí clearProxyOverride() a ošetřete i jeho asynchronní dokončení.

Dejte tomuto životnímu cyklu jednoho vlastníka. Nastavení platí pro WebView v celém procesu aplikace; opakovaná změna nemůže dát dvěma současným zobrazením nezávislé východy. Jiné procesy a knihovny HTTP mají své vlastní trasy.

Toto podporované rozhraní se vyhýbá závislosti na soukromých posluchačích změny proxy, které se mezi verzemi Androidu liší. Vyberá směrování; přihlašovací údaje proxy a důvěra v certifikáty stále používají své podporované mechanismy. Selhání ověřování nebo TLS po výběru je třeba diagnostikovat v této fázi.

Související články