http://www.cnblogs.com/rubylouvre/archive/2012/04/11/2442588.html
要了解某个网站是在移动设备上打开的还是在pc web浏览器中打开的,我们可以有以下综合的几种方式来搞定:
通过判断Request.UserAgent中的具体信息来分析判断,因为UserAgent包含了很多的信息,所以我们可以根据其中的某些信息来进行判断,具体的判断方式如下:
(1)string strUserAgent = Request.UserAgent.ToString().ToLower(); |
if (strUserAgent != null ){ |
if (Request.Browser.IsMobileDevice == true || strUserAgent.Contains( "iphone" ) || |
strUserAgent.Contains( "blackberry" ) || strUserAgent.Contains( "mobile" ) || |
strUserAgent.Contains( "windows ce" ) || strUserAgent.Contains( "opera mini" ) || |
strUserAgent.Contains( "palm" )){ |
Response.Redirect( "DefaultMobile.aspx" ); |
(2)((System.Web.Configuration.HttpCapabilitiesBase)Request.Browser).IsMobileDevice |
(3)public static boolean choose(String userAgent){ |
Agent.indexOf( "WapI" ) > -1 || |
userAgent.indexOf( "MC21" ) > -1 || |
userAgent.indexOf( "AUR" ) > -1 || |
userAgent.indexOf( "R380" ) > -1 || |
userAgent.indexOf( "UP.B" ) > -1 || |
userAgent.indexOf( "WinW" ) > -1 || |
userAgent.indexOf( "UPG1" ) > -1 || |
userAgent.indexOf( "upsi" ) > -1 || |
userAgent.indexOf( "QWAP" ) > -1 || |
userAgent.indexOf( "Jigs" ) > -1 || |
userAgent.indexOf( "Java" ) > -1 || |
userAgent.indexOf( "Alca" ) > -1 || |
userAgent.indexOf( "MITS" ) > -1 || |
userAgent.indexOf( "MOT-" ) > -1 || |
userAgent.indexOf( "My S" ) > -1 || |
userAgent.indexOf( "WAPJ" ) > -1 || |
userAgent.indexOf( "fetc" ) > -1 || |
userAgent.indexOf( "ALAV" ) > -1 || |
userAgent.indexOf( "Wapa" ) > -1 || |
userAgent.indexOf( "Oper" ) > -1){ |
(4) if (HttpContext.Current.Request.Headers[ "user-agent" ] != null && HttpContext.Current.Request.Headers[ "user-agent" ].ToLower().ToString().IndexOf( "mozilla" ) != -1){ |
HttpContext.Current.Response.Redirect( "http://www. " ); //PC |
HttpContext.Current.Response.Redirect( "http://wap " ); //Mobile ClientTypeTesting. |
当然我们还可以根据设备的分辨率和屏幕大小来判断是移动设备还是pc设备,但是这个准确性比较低。
优酷的站点是通过网络的Ip地址来进行判断的,如果是移动网络,浏览器访问站点时就会跳转到3GP网站,否则就跳转到PC站点。