Navigasi yang bergantung pada penggantian proxy WebView harus dimulai setelah listener penyelesaian penggantian berjalan. Menetapkannya lalu langsung memuat halaman membuat operasi berlomba dengan pembaruan asinkron.

  1. Periksa WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Dukungan bergantung pada implementasi WebView dan pustaka AndroidX WebKit serta tingkat API Android. Tentukan apa yang terjadi bila tidak tersedia; langsung terhubung secara diam-diam dapat menggagalkan fitur.
  2. Bangun ProxyConfig yang dimaksud dengan aturan proxy, sintaks endpoint, dan perilaku bypass yang didokumentasikan. Untuk navigasi situs publik yang diizinkan, pilih kandidat dari daftar proxy gratis yang protokolnya cocok dengan aturan yang didukung implementasi WebView tersebut. URL PAC, URI SOCKS, dan host telanjang adalah masukan yang berbeda.
  3. Panggil ProxyController.setProxyOverride() dengan konfigurasi itu, sebuah executor, dan listener penyelesaian. Mulai navigasi yang bergantung dari jalur penyelesaian.
  4. Saat penggantian sementara berakhir, bersihkan dengan clearProxyOverride() dan tangani juga penyelesaian asinkronnya.

Beri siklus hidup itu satu pemilik. Pengaturan berlaku untuk WebView di seluruh proses aplikasi; mengubahnya berulang kali tidak dapat memberi dua tampilan bersamaan jalan keluar yang independen. Proses lain dan pustaka HTTP memiliki rutenya sendiri.

Antarmuka yang didukung ini menghindari ketergantungan pada listener perubahan proxy privat yang berbeda antar-rilis Android. Ia memilih perutean; kredensial proxy dan kepercayaan sertifikat tetap menggunakan mekanisme yang didukung. Kegagalan autentikasi atau TLS setelah pemilihan perlu didiagnosis pada tahap itu.

Artikel terkait