Навигация, която зависи от заместване на прокси в WebView, трябва да започне, след като слушателят за завършване на заместването се изпълни. Задаването му и незабавното зареждане на страница оставя операцията в надпревара с асинхронна актуализация.

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

Дайте на този жизнен цикъл един собственик. Настройката се прилага за WebView в целия процес на приложението; многократната й промяна не може да даде на два едновременни изгледа независими изходи. Другите процеси и HTTP библиотеки имат свои маршрути.

Този поддържан интерфейс избягва зависимостта от частни слушатели за промяна на прокси, които се различават между версиите на Android. Той избира маршрутизиране; прокси идентификационните данни и доверието към сертификати все още използват своите поддържани механизми. Отказ при удостоверяване или TLS след избора трябва да се диагностицира на този етап.

Подобни статии