C#通过UserAgent判断智能设备(Android,IOS,PC,Mac)
尝试通过 Agent 来获取相应的智能手机设备标识,根据标识的不同来输出对应设备所需的显示样式及其他。
经过努力,终于搜集了比较全的 智能设备 的 Agent,相应的判断过程及代码如下,不明白的留言。
public static bool CheckAgent()
{
bool flag = false;
string agent = HttpContext.Current.Request.UserAgent;
string[] keywords = { "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" };
//排除 Windows 桌面系统
if (!agent.Contains("Windows NT") || (agent.Contains("Windows NT") && agent.Contains("compatible; MSIE 9.0;")))
{
//排除 苹果桌面系统
if (!agent.Contains("Windows NT") && !agent.Contains("Macintosh"))
{
foreach (string item in keywords)
{
if (agent.Contains(item))
{
flag = true;
break;
}
}
}
flag = true;
}
return flag;
}
代码解释:
1. !agent.Contains("Windows NT") && !agent.Contains("Macintosh") 排除Window 桌面系统 和 苹果桌面系统
2. "Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser" 这些是判断智能设备Agent中的关键词
3. MQQBrowser 为 QQ 手机浏览器,QQ 手机的Agent 比较特殊,所以单独判断(在目前的Android系统中,只有该浏览器支持Html5语言)。
最新文章
- Android中AIDL的理解与使用(二)——跨应用绑定Service并通信
- spark发行版笔记13
- Rebalance Customer Balances Utility的使用
- phpstorm配置代码自动同步到服务器
- YAFFS2文件系统分析(转)
- install Matlab2016b on Ubuntu 14.04
- smartUpload组件文件上传
- Configure Database Mirroring
- SQL把做个字段组合成一个字符串
- PHP之路——PHPExcel使用
- 转: sublime text常用插件和快捷键
- c 有意思的数组初始化
- css3动画实例测试
- vconfig 的使用
- Fragmen和Activity之间的通信--接口和实现的分离(转)
- MySQL关于root密码修改
- openssl交叉编译记录
- Java并发编程总结3——AQS、ReentrantLock、ReentrantReadWriteLock
- mac下/usr/local/bin No such file or directory问题解决
- linux 的常用命令---------第五阶段
热门文章
- java静态代码块,构造方法,初始化块的执行顺序
- P1522 牛的旅行 (Floyd)
- spark浅谈(3):
- vue访问外部接口设置代理,解决跨域(vue-cli3.0)
- 在Eclipse-jee-neon中配置springsource-tool-suite
- 【记录】spring boot 全局捕获异常@ExceptionHandler与@Validated @RequestBody 配合使用
- Express 2015 RC for Windows 10 安装
- UNIX网络编程总结一
- leetcode x进制数 python3
- Google Capture The Flag 2018 (Quals) - Beginner's Quest - Reverse - Firmware