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ą.

  1. 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ę.
  2. Zbuduj zamierzone ProxyConfig z 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.
  3. Wywołaj ProxyController.setProxyOverride() z tą konfiguracją, wykonawcą i nasłuchiwaczem ukończenia. Rozpocznij zależną nawigację ze ścieżki ukończenia.
  4. 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.

Powiązane artykuły