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