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