近来在开发一个基于手机上网的项目。遇到的第一件事情就是,该项目需要同时支持手机和PC。详细的说:当pc登陆上来,访问的是html;当手机登陆上来就是wml。
那我们怎么来判断呢?
入正题,下面说说我的解决办法。
-
-
-
-
-
-
-
public static boolean choose(String userAgent) {
-
if (userAgent.indexOf("Noki") > -1 ||
-
userAgent.indexOf("Eric") > -1 ||
-
userAgent.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) {
-
return true;
-
} else {
-
return false;
-
}
-
}
参数userAgent:
-
String userAgent = request.getHeader("User-Agent");
有人说可以根据来访的IP来判断,好像是行不通的。当采用wap上网方式还好判断;一旦采用net来访问,往往也是可以获取独立的IP的。
还有人说可以用HTTP_ACCEPT来判断,判断访问过来的终端是否支持wml,这样问题又会出现,如果某个浏览器既能支持wml和html,或者现在很多智能手机既能支持wml和html,你还是没招了!服务器端通过http请求区分是mobile还是pc,布布扣,bubuko.com
服务器端通过http请求区分是mobile还是pc
原文:http://blog.csdn.net/tfy1332/article/details/23037149