Как получить строку useragent в Windows Phone 7? - PullRequest
5 голосов
/ 07 декабря 2010

Мне нужно получить строку агента пользователя телефона, но я не нашел в API ничего такого, что позволяло бы это.Я встречал следующие два сообщения в блоге, описывающие формат строки пользовательского агента:

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

Но я не нашелметод, который может вернуть пользовательский агент.Кто-нибудь смог сделать это успешно?

Ответы [ 2 ]

4 голосов
/ 07 декабря 2010

Перейдите на http://whatsmyuseragent.com с помощью соответствующего телефона.

Из моего Samsung Focus: Mozilla/4.0 (compatible: MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; SAMSUNG; SGH-i917)

1 голос
/ 20 апреля 2014

Я сделал этот помощник, который создаст временный веб-браузер, загрузит скрипт и вернет ожидаемого userAgent:

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;
    }
}

Использование:

var userAgent = await UserAgentHelper.GetUserAgent();

Это работает как минимум для WP7.1 и 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)";
...