我正在尝试使用这种方式获取窗口手机的用户代理
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; Windows Phone 8.0; Trident / 6.0; IEMobile / 10.0; ARM; Touch;诺基亚; Lumia 630)
但是来自whatsmyuseragent.com
Mozilla / 5.0(Windows Phone 8.1; ARM; Trident / 7.0;触摸; rv:11.0; IEMobile / 11.0;诺基亚; Lumia 630),如Gechko 请帮帮我......
答案 0 :(得分:0)
在我们的门户网站中,我们通过UAS检测呼叫设备。 我发现了 WP 8.1用户代理字符串的一些问题 对于使用IE的WP,通过互联网设置为移动,我会收到&#34;有意义的&#34; UAS:
Mozilla / 5.0(移动版; Windows Phone 8.1; Android 4.0; ARM; Trident / 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设置为&#34; Desktop&#34;或通过内联网呼叫门户网站,我收到:
Mozilla / 5.0(Windows NT 6.2; ARM; Trident / 7.0; Touch; rv:11.0; WPDesktop; Lumia 930)喜欢Gecko
所以..效果是,我们的门户网站已经向iOS显示了移动页面,而不是移动页面到WP 解决方法是在UAS中查询&#34; Windows Phone&#34; 之前查询iPhone 似乎MS试图以这种方式被检测为移动设备(如果页面仅查询iOS和Android设备),那就不好了。