1.C#通过User-Agent 处理

       //判断 是否来自手机终端
public bool checkMoble()
{
string userAgent = Request.Headers["User-Agent"];
if (userAgent.IndexOf("Noki") > - || // Nokia phones and emulators
userAgent.IndexOf("Android") > - || //Android 手机
userAgent.IndexOf("iPhone") > - || //iPhone 手机
userAgent.IndexOf("Eric") > - || // Ericsson WAP phones and emulators
userAgent.IndexOf("WapI") > - || // Ericsson WapIDE 2.0
userAgent.IndexOf("MC21") > - || // Ericsson MC218
userAgent.IndexOf("AUR") > - || // Ericsson R320
userAgent.IndexOf("R380") > - || // Ericsson R380
userAgent.IndexOf("UP.B") > - || // UP.Browser
userAgent.IndexOf("WinW") > - || // WinWAP browser
userAgent.IndexOf("UPG1") > - || // UP.SDK 4.0
userAgent.IndexOf("upsi") > - || //another kind of UP.Browser
userAgent.IndexOf("QWAP") > - || // unknown QWAPPER browser
userAgent.IndexOf("Jigs") > - || // unknown JigSaw browser
userAgent.IndexOf("Java") > - || // unknown Java based browser
userAgent.IndexOf("Alca") > - || // unknown Alcatel-BE3 browser (UP based) userAgent.IndexOf("MITS") > - || // unknown Mitsubishi browser
userAgent.IndexOf("MOT-") > - || // unknown browser (UP based)
userAgent.IndexOf("My S") > - ||// unknown Ericsson devkit browser
userAgent.IndexOf("WAPJ") > - ||//Virtual WAPJAG www.wapjag.de
userAgent.IndexOf("fetc") > - ||//fetchpage.cgi Perl script from www.wapcab.de userAgent.IndexOf("ALAV") > - || //yet another unknown UP based browser
userAgent.IndexOf("Wapa") > - || //another unknown browser (Web based "Wapalyzer")
userAgent.IndexOf("UCWEB") > - || //another unknown browser (Web based "Wapalyzer")
userAgent.IndexOf("BlackBerry") > - || //another unknown browser (Web based "Wapalyzer")
userAgent.IndexOf("J2ME") > - || //another unknown browser (Web based "Wapalyzer")
userAgent.IndexOf("Oper") > -)
{
return true;
}
else
{
return false;
}
}

2.考虑asp.net mvc 
里面有for mobile的模版

3.获取浏览器的属性

HttpBrowserCapabilities bc=Request.Browser;
Response.Write("<script language='javascript'>alert('" + bc.Browser + "');</script>");

 4.js判断

<script type="text/javascript">
var bro = navigator.userAgent;
//alert(bro);
// alert(bro.indexOf("Windows Phone"));
// iPad 浏览器navigator.userAgent(包含iPad)
if (bro.indexOf("NetFront") > 0 || bro.indexOf("UCWEB") > 0
|| bro.indexOf("iPhone") > 0 || bro.indexOf("Windows CE") > 0
|| bro.indexOf("MIDP-2.0") > 0 || bro.indexOf("Android") > 0
|| bro.indexOf("Opera Mini") > 0 || bro.indexOf("SymbianOS") > 0
|| bro.indexOf("Windows Phone") > 0) {
window.open("Wap1/Index.aspx", "_top");
}
// else if (bro.indexOf("Windows NT") > 0) {
// window.open("NewWeb/default.html", "_top");
// }
else {
window.open("NewWeb/default.html", "_top");
}
</script>

(如有问题到博主网站 blog.uoolo.com 或 wuchao.cnblogs.com 留言)

手机版和PC版识别的更多相关文章

  1. 自动判断手机版和pc版

    <html><head><title>欢迎来到手机版</title><script>var ua = navigator.userAgent ...

  2. wap版和pc版的旋转js

    <script type="text/javascript"> var evt = "onorientationchange" in window ...

  3. Nginx学习总结(2)——Nginx手机版和PC电脑版网站配置

    考虑到网站的在多种设备下的兼容性,有很多网站会有手机版和电脑版两个版本.访问同一个网站URL,当服务端识别出用户使用电脑访问,就打开电脑版的页面,用户如果使用手机访问,则会得到手机版的页面. 1.判断 ...

  4. wifi万能钥pc版提示手机未连接

     关于PC版万能钥匙的用法 大部分人都是在“未连接到手机”再不知道怎么搞了 怎么连接到手机呢? 首先要把你的手机变成路由器 让电脑连上 这个都知道怎么搞吧 手机版万能钥匙有个一键让手机变成热点 再用电 ...

  5. 网络编程之PC版与Android手机版带断点续传的多线程下载

    一.多线程下载         多线程下载就是抢占服务器资源         原理:服务器CPU 分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服 ...

  6. DTcms手机版使用余额支付 提示信息跳转到PC版的错误。以及提交订单不打开新页面

    手机版使用余额支付 提示信息跳转到PC版的错误 引起错误的原因是中间需要提交到DTcms.Web\api\payment\balance\index.aspx去处理 导致BasePage.cs中的li ...

  7. 手机访问pc版网站自动跳转为手机版页面

    1.PC版首页</head>标签前加上以下脚本 <script src="/tools/browser_redirect.ashx"></script ...

  8. 手机浏览PC版页面出现背景图片显示不全的问题解决方案

    手机浏览PC版页面出现背景图片显示不全 给定宽高的值

  9. 全能直播王PC版-0707-full_codecs

    全能直播王是一款高清流畅的全平台的电视直播应用,让您随时随地看高清电视直播. [全能特色] 1. 收录全国1400多个直播频道,包括湖南卫视.江苏卫视.浙江卫视等热门频道. 2. 频道多线路自动选择, ...

随机推荐

  1. android R 文件生成不了

    在android中比较头疼的是R文件生成不了.今天总结一下R文件生成不了的一些原因和解决方法 1. xml文件有错, 如果在res文件中的xml文件有错,android不会自动生成R文件,此时仔细查看 ...

  2. java equals 心得体会

    要记住最有用的一点: equals 在已经被系统定义好的类中 是已经被重写好了的 父类中的 equals方法是比较的两个对象是否指向同一引用 在被定义除了父类以外比较的是两个对象的内容 因此 人为定义 ...

  3. Spring dbcp连接池简单配置 示例

    一.配置db.properties属性文件 #database connection config connection.username=sa connection.password=sa conn ...

  4. React/React Native的 ES5 ES6 写法对照

      ES5 ES6 模块 var React = require("react-native); var { Image, Text, View } = React;   import Re ...

  5. python之pandas模块

    一.pandas模块是基于Numpy模块的,pandas的主要数据结构是Series和DadaFrame,下面引入这样的约定: from pandas import Series,DataFrame ...

  6. ORA-19502: write error on file "", blockno (blocksize=)/linux下磁盘空间满了解决办法--Virtualbox

    今天,在测试环境启动数据库时,报错: SQL> startup; ORACLE instance started. Total System Global Area  285212672 byt ...

  7. 转:修改类不重启tomcat 自动加载项目

    可以修改类不用重启Tomcat加载整个项目(手工启动)     配置reloadable=true(自动重载)     使用Debug模式,前提是仅限于局部修改.(修改类不用重启--热加载) (rel ...

  8. Smarty 变量使用

    Smarty的标签都是使用定界符括起来. 默认定界符是{ 和 }, 但定界符可以被改变. 比如说在本手册,我们会假定你在使用默认的定界符. 在Smarty看来,任何在定界符之外的内容,都是静态的,或者 ...

  9. 提高效率的便签By番茄时间管理 win7标签,小功能,大作用

    今日待办 把一些重要的事情,列入其中. 着重处理. 活动清单 罗列一些最近需要做的事情,不一定按照紧急重要的程度. 把活动清单中的事情,按照实际情况,安排到今日待办当中. 还有一个我喜欢的'头脑风暴' ...

  10. Axure 原型设计工具画业务流程图

    加入人人都是产品经理[起点学院]产品经理实战训练营,BAT产品总监手把手带你学产品点此查看详情! 软件行业从业6年,流程图看过太多,大部分流程图是在考验阅读者的理解能力,近期在设计公司新版APP,对流 ...