Навігація, що залежить від перевизначення проксі у WebView, має починатися після спрацювання слухача завершення перевизначення. Якщо встановити його й одразу завантажити сторінку, операція змагатиметься з асинхронним оновленням.

  1. Перевірте WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). Підтримка залежить від реалізації WebView і бібліотеки AndroidX WebKit, а також від рівня API Android. Визначте, що відбувається за його відсутності; тихий прямий перехід може звести функцію нанівець.
  2. Побудуйте потрібний ProxyConfig з його документованими правилами проксі, синтаксисом кінцевої точки та поведінкою обходу. Для дозволеної навігації публічними сайтами виберіть кандидата зі списку безкоштовних проксі, протокол якого відповідає правилу, яке підтримує ця реалізація WebView. URL PAC, URI SOCKS і голий хост — це різні вхідні дані.
  3. Викличте ProxyController.setProxyOverride() з цією конфігурацією, виконавцем і слухачем завершення. Починайте залежну навігацію зі шляху завершення.
  4. Коли тимчасове перевизначення завершиться, очистіть його за допомогою clearProxyOverride() і обробіть також його асинхронне завершення.

Дайте цьому життєвому циклу одного власника. Налаштування діє для всіх WebView у процесі застосунку; повторна зміна не може дати двом одночасним поданням незалежні виходи. Інші процеси та бібліотеки HTTP мають власні маршрути.

Цей підтримуваний інтерфейс уникає залежності від закритих слухачів зміни проксі, які різняться між випусками Android. Він вибирає маршрутизацію; облікові дані проксі та довіра до сертифікатів і далі використовують свої підтримувані механізми. Збій автентифікації або TLS після вибору потрібно діагностувати на цьому етапі.

Схожі статті