C# 如何在WindowPhone 8.0和8.1用户代理中获取用户代理

C# 如何在WindowPhone 8.0和8.1用户代理中获取用户代理,c#,wpf,windows,windows-phone,C#,Wpf,Windows,Windows Phone,我试图得到一个窗口电话的用户代理,我用这种方式得到它 private const string Html = @" <html> <head> <script language=""javascript"" type=""text/javascript""> function notifyUA() { window.external.notify(navigator.userAgen

我试图得到一个窗口电话的用户代理,我用这种方式得到它

private const string Html =
        @"
    <html>
    <head>
    <script language=""javascript"" type=""text/javascript"">
        function notifyUA() {
           window.external.notify(navigator.userAgent);
        }
    </script>
    </head>`enter code here`
    <body onload=""notifyUA();""></body>
    </html>";

public static void GetUserAgent(Panel rootElement, Action<string> callback)
    {
        var browser = new Microsoft.Phone.Controls.WebBrowser();
        browser.IsScriptEnabled = true;
        browser.Visibility = Visibility.Collapsed;
        browser.Loaded += (sender, args) => browser.NavigateToString(Html);
        browser.ScriptNotify += (sender, args) =>
        {
            string userAgent = args.Value;
            rootElement.Children.Remove(browser);
            callback(userAgent);
        };
        rootElement.Children.Add(browser);
    }
在WP 8.0的情况下,这工作正常,但在WP 8.1的情况下不正确

根据代码,我得到UA作为

Mozilla/5.0兼容;MSIE 10.0;windowsphone8.0;三叉戟/6.0;IEMobile/10.0;臂触摸诺基亚;卢米亚630

但是从whatsmyuseragent.com

Mozilla/5.0 Windows Phone 8.1;臂三叉戟/7.0;触摸rv:11.0;IEMobile/11.0;诺基亚;卢米亚630像格奇科
请帮助我…

在我们的门户中,我们通过UAS检测呼叫设备。 我检测到WP 8.1用户代理字符串存在一些问题。 对于带有IE的WP,设置为通过互联网移动,我收到有意义的UAS:

Mozilla/5.0手机;windowsphone8.1;安卓4.0;臂三叉戟/7.0; 触摸rv:11.0;IEMobile/11.0;诺基亚;Lumia 930与iPhone OS 7_0_3类似 Mac OS X AppleWebKit/537 KHTML,如Gecko Mobile Safari/537

因此,如果IE mobile设置为桌面或通过内部网调用门户,我将收到:

Mozilla/5.0 Windows NT 6.2;臂三叉戟/7.0;触摸rv:11.0; wp桌面;Lumia930像壁虎

所以。。结果是,我们的门户将移动页面显示给iOS,而不是移动页面显示给WP。 解决方法是在查询iPhone之前先查询Windows Phone的UAS。
当MS试图通过这种方式被检测为移动设备时,如果一个页面只查询iOS和Android设备,那有什么不好。

我怀疑用户代理被报告为与Mozilla/5.0兼容;MSIE 10.0;windowsphone8.0;三叉戟/6.0;IEMobile/10.0;臂触摸诺基亚;Lumia 630具有向后兼容性,但whatsmyuseragent.com足够智能,可以找出正确的版本。你能用Fiddler验证哪个用户代理版本被发送到网站吗?我有点类似的问题,我的WP8.1将UA报告为WP8.0,所以我无法区分它们。你有办法吗?