Une navigation qui dépend d'une substitution de proxy WebView doit commencer après l'exécution de l'écouteur d'achèvement de la substitution. La définir puis charger immédiatement une page laisse l'opération en concurrence avec une mise à jour asynchrone.

  1. Vérifiez WebViewFeature.isFeatureSupported(WebViewFeature.PROXY_OVERRIDE). La prise en charge dépend de l'implémentation de WebView et de la bibliothèque AndroidX WebKit, ainsi que du niveau d'API d'Android. Définissez ce qui se passe en son absence ; passer directement en silence peut réduire la fonctionnalité à néant.
  2. Construisez la ProxyConfig souhaitée avec ses règles de proxy documentées, la syntaxe de point de terminaison et le comportement de contournement. Pour une navigation autorisée vers des sites publics, choisissez un candidat dans la liste de proxys gratuits dont le protocole correspond à une règle prise en charge par cette implémentation de WebView. Une URL PAC, un URI SOCKS et un hôte nu sont des entrées différentes.
  3. Appelez ProxyController.setProxyOverride() avec cette configuration, un exécuteur et un écouteur d'achèvement. Démarrez la navigation dépendante depuis le chemin d'achèvement.
  4. Lorsque la substitution temporaire se termine, effacez-la avec clearProxyOverride() et gérez aussi son achèvement asynchrone.

Donnez à ce cycle de vie un seul responsable. Le réglage s'applique aux WebView de tout le processus de l'application ; le modifier à répétition ne peut pas donner des sorties indépendantes à deux vues simultanées. Les autres processus et bibliothèques HTTP ont leurs propres routes.

Cette interface prise en charge évite de dépendre d'écouteurs privés de changement de proxy qui varient selon les versions d'Android. Elle choisit le routage ; les identifiants de proxy et la confiance dans les certificats utilisent toujours leurs mécanismes pris en charge. Un échec d'authentification ou TLS après la sélection doit être diagnostiqué à cette étape.

Articles similaires