Android WebView : appliquer la substitution de proxy avant la navigation
Utilisez la vérification de fonctionnalité et le rappel d'achèvement d'AndroidX WebKit, et tenez compte de la substitution partagée par les WebView d'un même processus.
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.
- 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. - Construisez la
ProxyConfigsouhaité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. - 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. - 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.