进入WP8时代后,通过DeviceExtendedProperties获取到的DeviceName不再是手机型号了,这对于需要获得手机型号做一些事情的应用(如新浪微博的小尾巴)来说,影响是比较大的。 这时候我们就需要通过获取手机的UserAgent来取得这个手机型号。由于在Windows Phone中并没有直接获取UserAgent的API,所以我们需要通过WebBrowser解析一个特定的html字符串来间接的获取,下面来看看具体的实现步骤:

1.定义获取UserAgent使用的HTML

        private const string Html =
@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">
<html>
<head>
<script language=""javascript"" type=""text/javascript"">
function notifyUA() {
window.external.notify(navigator.userAgent);
}
</script>
</head>
<body onload=""notifyUA();""/>
</html>";

2.使用WebBrowser解析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);
}

3.获取UserAgent

        private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
GetUserAgent(
LayoutRoot,
userAgent =>
{
UserAgentTextBlock.Text = userAgent;
});
}

转载自:http://www.developer.nokia.com/Community/Wiki/%E5%9C%A8Windows_Phone%E4%B8%AD%E8%8E%B7%E5%8F%96UserAgent

最新文章

  1. Js的typeof和Js的基本数据类型
  2. jQuery简单入门(五)
  3. python --- Python中的callable 函数
  4. spring的PathMatchingResourcePatternResolver-通配符的Resource查找器
  5. BZOJ1500——维修序列
  6. NFC(8)关于新买的标签的格式化
  7. Automatic Generation of Animated GIFs from Video论文研读及实现
  8. java-生成任意格式的json数据
  9. 多线程系列之三:Immutable 模式
  10. Devexpress dll搜集
  11. 指定的参数已超出有效值的范围。参数名:sit ,先仔细看看错误和我的一样不一样
  12. web api token验证理解
  13. C# Null 赋值
  14. Python Socket 编程详细介绍(转)
  15. 关于WebSocket协议
  16. 大数据入门:Maven项目的创建及相关配置
  17. x01.calc: 编程语言
  18. 前端调用后端的方法(基于restful接口的mvc架构)
  19. 常用类(日期时间格式转换,date,枚举)
  20. SGU 205. Quantization Problem

热门文章

  1. js控制精度的加减乘除:js浮点数计算问题
  2. AC自动机题目汇总
  3. (转)大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
  4. Tomcat服务器绑定域名的配置
  5. 设定报表变量的CharSpacing
  6. Django~automated tests
  7. ubuntu下安装mysql
  8. 后台session过期,tomcat重启,自动跳转页面js写法
  9. 【linux】ubuntu stmp服务器配置
  10. 25个增强iOS应用程序性能的提示和技巧(初级篇)