基于UserAgent判断当前设备是否为移动终端浏览行为
需求分析:在PC端和移动终端键入同一域名,根据当前是否为移动终端而进入移动终端使用的wap页面,反之亦然。
.net下可以根据后置代码得到当前UserAgent从而判断是否为移动终端浏览。以此为条件进而跳转到移动端域名,
例如m.xxx.com;反之为正常页面浏览。
ps:来至wikipedia的对UserAgent解释
在计算机科学中,用户代理(英语:User Agent)指的是代表使用者行为的软件(软件代理程序)所提供的对自己的一个标识符。例如,一个电子邮件阅读器就是一个电子邮件客户端,而在会话发起协议 (SIP) 中,用户代理的术语指代的是一个通信会话的所有两个终端
在很多场合,用户代理作为一个主从式架构的分布式计算系统中的通信所用网络传输协议的客户端而行为。特别的,超文本传输协议指定了发起请求的客户端软件,使用一个“User-Agent”请求头,即使在客户端不由用户操纵的时候。SIP 协议(基于 HTTP)沿用了这一用法。
关键点:通过js判断当前设备UserAgent是否为预留的判断条件,关键代码如下
<script language="javascript"> function checkMobile() { var pda_user_agent_list = new Array("2.0 MMP", "240320", "AvantGo", "BlackBerry", "Blazer", "Cellphone", "Danger", "DoCoMo", "Elaine/3.0", "EudoraWeb", "hiptop", "IEMobile", "KYOCERA/WX310K", "LG/U990", "MIDP-2.0", "MMEF20", "MOT-V", "NetFront", "Newt", "Nintendo Wii", "Nitro", "Nokia", "Opera Mini", "Opera Mobi", "Palm", "Playstation Portable", "portalmmm", "Proxinet", "ProxiNet", "SHARP-TQ-GX10", "Small", "SonyEricsson", "Symbian OS", "SymbianOS", "TS21i-10", "UP.Browser", "UP.Link", "Windows CE", "WinWAP", "Androi", "iPhone", "iPod", "iPad", "Windows Phone", "HTC"); var pda_app_name_list = new Array("Microsoft Pocket Internet Explorer"); var user_agent = navigator.userAgent.toString(); for (var i = 0; i < pda_user_agent_list.length; i++) { if (user_agent.indexOf(pda_user_agent_list[i]) >= 0) { return true; } } var appName = navigator.appName.toString(); for (var i = 0; i < pda_app_name_list.length; i++) { if (user_agent.indexOf(pda_app_name_list[i]) >= 0) { return true; } } return false; } if (checkMobile()) location.href = "http://m.xxx.com";///移动端域名 else { location.href = "http://www.xxx.com/index.htm";///正常浏览 } </script>
上述代码有删改,仅供参考学习交流之用。
以上文章由本人收集整理进行撰写,版权归属博客园及本人。欢迎转载和引用,但必须在转载和引用的开头或来源标注博客名称和该篇文章的链接地址。