Modifier l’agent utilisateur par défaut dans WebView UWP

J’ai besoin de définir UA personnalisé et j’utilise

httpRequestMessage.Headers.Add("User-Agent", "blahblah"); theWebView.NavigateWithHttpRequestMessage(httpRequestMessage); 

Mais si je clique sur un lien de la page, cet UA est effacé et définit celui par défaut.

J’ai trouvé la même question WebView – Définir User-Agent sur chaque demande, mais peut-être est-il résolu en 1607?

WebView n’est pas un navigateur à usage général, il a quelques “limitations” qui ne sont pas supscopes maintenant. Aucune API ne peut définir l’agent utilisateur par défaut utilisé dans chaque demande. En guise de solution de contournement, nous pouvons utiliser l’ événement WebView.NavigationStarting avec la méthode WebView.NavigateWithHttpRequestMessage pour définir User-Agent dans chaque demande.

Pour plus d’informations sur la procédure à suivre, reportez-vous à cette réponse . Le point clé ici consiste à supprimer le gestionnaire de l’événement NavigationStarting et à annuler la navigation dans la demande d’origine, puis à append le gestionnaire après NavigateWithHttpRequestMessage pour s’assurer que l’événement NavigationStarting peut capturer les demandes suivantes, comme suit:

 WebView wb = new WebView(); wb.NavigationStarting += Wb_NavigationStarting; ... private void NavigateWithHeader(Uri uri) { var requestMsg = new Windows.Web.Http.HttpRequestMessage(HttpMethod.Get, uri); requestMsg.Headers.Add("User-Agent", "blahblah"); wb.NavigateWithHttpRequestMessage(requestMsg); wb.NavigationStarting += Wb_NavigationStarting; } private void Wb_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) { wb.NavigationStarting -= Wb_NavigationStarting; args.Cancel = true; NavigateWithHeader(args.Uri); } 

Nous vous invitons également à voter sur UserVoice pour partager vos commentaires.