Android WebView: zastosuj nadpisanie proxy przed nawigacją
Użyj sprawdzania funkcji i wywołania zwrotnego ukończenia AndroidX WebKit oraz uwzględnij nadpisanie współdzielone przez WebView w jednym procesie.
Nawigacja zależna od nadpisania proxy w WebView powinna rozpocząć się po uruchomieniu nasłuchiwacza ukończenia nadpisania. Ustawienie go i natychmiastowe wczytanie strony pozostawia operację w wyścigu z asynchroniczną aktualizacją.
- Sprawdź
WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Obsługa zależy od implementacji WebView i biblioteki AndroidX WebKit oraz od poziomu API Androida. Zdefiniuj, co się dzieje, gdy go brakuje; ciche połączenie bezpośrednie może zniweczyć tę funkcję. - Zbuduj zamierzone
ProxyConfigz jego udokumentowanymi regułami proxy, składnią punktu końcowego i zachowaniem obejścia. W przypadku dozwolonej nawigacji do witryn publicznych wybierz kandydata z listy darmowych proxy, którego protokół odpowiada regule obsługiwanej przez tę implementację WebView. Adres PAC, URI SOCKS i sam host to różne dane wejściowe. - Wywołaj
ProxyController.setProxyOverride()z tą konfiguracją, wykonawcą i nasłuchiwaczem ukończenia. Rozpocznij zależną nawigację ze ścieżki ukończenia. - Gdy tymczasowe nadpisanie się skończy, wyczyść je za pomocą
clearProxyOverride()i obsłuż także jego asynchroniczne ukończenie.
Przydziel temu cyklowi życia jednego właściciela. Ustawienie dotyczy WebView w całym procesie aplikacji; wielokrotna zmiana nie może dać dwóm jednoczesnym widokom niezależnych wyjść. Inne procesy i biblioteki HTTP mają własne trasy.
Ten obsługiwany interfejs pozwala uniknąć zależności od prywatnych nasłuchiwaczy zmian proxy, które różnią się między wydaniami Androida. Wybiera trasowanie; dane uwierzytelniające proxy i zaufanie do certyfikatów nadal korzystają z obsługiwanych mechanizmów. Błąd uwierzytelniania lub TLS po wyborze trzeba zdiagnozować na tym etapie.