2010-12-07 24 views
5

Je dois obtenir la chaîne d'agent utilisateur d'un téléphone, mais je n'ai rien trouvé dans l'API qui le permette. Je suis venu à travers les deux postes de blog suivants décrivant le format de la chaîne de l'agent utilisateur:Comment obtenir une chaîne de l'agent utilisateur de Windows Phone 7?

http://blogs.msdn.com/b/iemobile/archive/2010/03/25/ladies-and-gentlemen-please-welcome-the-ie-mobile-user-agent-string.aspx

http://madskristensen.net/post/Windows-Phone-7-user-agents.aspx

Mais je ne l'ai pas trouvé une méthode qui peut renvoyer l'agent utilisateur. Quelqu'un at-il été capable de le faire avec succès?

Répondre

3

Une solution pour récupérer l'agent utilisateur est affichée ici en utilisant un WebBrowser et un script.

Getting the Browser's User Agent.

+0

Merci. Dommage, il n'y a pas moyen de le faire sans créer un objet navigateur. – CACuzcatlan

+0

Pas de soucis, oui, ça ne ferait pas de mal de pouvoir la rationaliser. N'hésitez pas à commenter sur le forum Suggestions ou à élever un ticket Connect (vs/wpdt). –

+0

@MickN Aucun accès à ce lien. Pouvez-vous copier le contenu et/ou corriger le lien? –

4

Aller à http://whatsmyuseragent.com en utilisant le téléphone en question.

De mon Samsung Focus: Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)

+0

Lien brisé ... :) – esylvestre

+0

@esylvestre Merci! Fixé. – Lee

0

J'ai fait cette aide qui va créer un navigateur Web temporaire, charger un script et retourner un userAgent awaitable:

internal static class UserAgentHelper 
{ 
    private const string Html = @"<!DOCTYPE html><html><body onload=""window.external.notify(navigator.userAgent);""></body></html>"; 
    public static Task<string> GetUserAgent() 
    { 
     var tcs = new TaskCompletionSource<string>(); 
     var browser = new WebBrowser { IsScriptEnabled = true }; 
     browser.ScriptNotify += (sender, args) => tcs.SetResult(args.Value); 
     browser.NavigateToString(Html); 
     return tcs.Task; 
    } 
} 

Utilisation:

var userAgent = await UserAgentHelper.GetUserAgent(); 

Cela fonctionne au moins pour WP7.1 et WP8.0:

WP7: "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Microsoft; XDeviceEmulator)"; 
WP8: "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; Microsoft; Virtual)";