要了解某個網站是在移動設備上打開的還是在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 || // Ericsson WapIDE 2.0
userAgent.indexOf("MC21") > -1 || // Ericsson MC218
userAgent.indexOf("AUR") > -1 || // Ericsson R320
userAgent.indexOf("R380") > -1 || // Ericsson R380
userAgent.indexOf("UP.B") > -1 || // UP.Browser
userAgent.indexOf("WinW") > -1 || // WinWAP browser
userAgent.indexOf("UPG1") > -1 || // UP.SDK 4.0
userAgent.indexOf("upsi") > -1 || //another kind of UP.Browser
userAgent.indexOf("QWAP") > -1 || // unknown QWAPPER browser
userAgent.indexOf("Jigs") > -1 || // unknown JigSaw browser
userAgent.indexOf("Java") > -1 || // unknown Java based browser
userAgent.indexOf("Alca") > -1 || // unknown Alcatel-BE3 browser (UP based)
userAgent.indexOf("MITS") > -1 || // unknown Mitsubishi browser
userAgent.indexOf("MOT-") > -1 || // unknown browser (UP based)
userAgent.indexOf("My S") > -1 ||// unknown Ericsson devkit browser
userAgent.indexOf("WAPJ") > -1 ||//Virtual WAPJAG www.wapjag.de
userAgent.indexOf("fetc") > -1 ||//fetchpage.cgi Perl script from www.wapcab.de
userAgent.indexOf("ALAV") > -1 || //yet another unknown UP based browser
userAgent.indexOf("Wapa") > -1 || //another unknown browser (Web based "Wapalyzer")
userAgent.indexOf("Oper") > -1){
return true;
} else{
return false;
}
(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
}else{
HttpContext.Current.Response.Redirect("http://wap "); //Mobile ClientTypeTesting.
}
當然我們還可以根據設備的分辨率和屏幕大小來判斷是移動設備還是pc設備,但是這個准確性比較低。
優酷的站點是通過網絡的Ip地址來進行判斷的,如果是移動網絡,瀏覽器訪問站點時就會跳轉到3GP網站,否則就跳轉到PC站點。
