Навигација која зависи од замене проксија у WebView-у треба да почне након што се изврши слушалац завршетка замене. Постављање и тренутно учитавање странице оставља радњу у трци са асинхроним ажурирањем.

  1. Проверите WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Подршка зависи од имплементације WebView-а и библиотеке AndroidX WebKit, као и од нивоа Android API-ја. Дефинишите шта се дешава када га нема; тихо директно повезивање може обесмислити функцију.
  2. Изградите жељени ProxyConfig са његовим документованим правилима проксија, синтаксом крајње тачке и понашањем заобилажења. За дозвољену навигацију јавним страницама изаберите кандидата са листе бесплатних проксија чији протокол одговара правилу које та имплементација WebView-а подржава. PAC URL, SOCKS URI и голи хост су различити уноси.
  3. Позовите ProxyController.setProxyOverride() са том конфигурацијом, извршиоцем и слушаоцем завршетка. Започните зависну навигацију из путање завршетка.
  4. Када привремена замена заврши, обришите је помоћу clearProxyOverride() и обрадите и њено асинхроно завршавање.

Дајте том животном циклусу једног власника. Поставка се примењује на WebView-ове у целом процесу апликације; поновљено мењање не може дати два истовремена приказа независне излазе. Други процеси и HTTP библиотеке имају своје руте.

Овај подржани интерфејс избегава ослањање на приватне слушаоце промене проксија који се разликују између Android издања. Он бира усмеравање; акредитиви проксија и поверење у сертификате и даље користе своје подржане механизме. Неуспех аутентификације или TLS-а након избора треба дијагностиковати у тој фази.

Повезани чланци