做移动开发时,时常要判断移动终端是IOS还是android,以及浏览器,或者手机型号等等操作
其实在用户发起请求时,可以通过header来获取到你想要的东西;我们来看看:
public Object dowlaodapplawyer(HttpServletRequest request, HttpServletResponse response){
String agent= request.getHeader("user-agent");
System.out.println(agent);
}
我们可以看到打印的内容如下:
android(小米,内网)访问:
Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; MI 3W Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025483 Mobile Safari/533.1 MicroMessenger/6.3.9.48_refecd3e.700 NetType/WIFI Language/zh_CN
android(小米,外网网)访问:
Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; GT-I9500 Build/KOT49H) AppleWebKit/
537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 QQ-URL-Manager Mobile Safar
i/537.36
我们很容易的就可以判断出 android手机 是否是 WIFI 型号
,浏览器等等;
判断方法如下:
if(agent.contains("Android")){
//是否是安卓系统
}
if(agent.contains("iPhone")||agent.contains("iPod")||agent.contains("iPad")){
}
if(agent.contains("MI")){
//小米
}
if(agent.contains("lenovo")){
//联想
}
if(agent.contains("WIFI")){
//是否wifi
}
有了上面这些判定条件,那么现在有一个需求,一个二维码,通过扫码方式下载一个APP,android将根据手机跳转到不同的应用市场,iphone,ipad等跳转到苹果应用市场的下载链接代码如下:
public Object dowlaodapplawyer(HttpServletRequest request, HttpServletResponse response){
String agent= request.getHeader("user-agent");
if(agent.contains("Android")){
try {
if(agent.contains("MI")){
//小米手机跳转到小米应用市场
response.sendRedirect("http://app.mi.com/detail/119750?ref=search");
}else{
response.sendRedirect("http://www.wandoujia.com/apps/com.rogerlauren.lawyer");
}
} catch (IOException e) {
}
}else if(agent.contains("iPhone")||agent.contains("iPod")||agent.contains("iPad")){
//通过微信进入此界面时,由于苹果市场并没有提供在浏览器中打开的提示
if(agent.contains("Safari")){
try {
//听过手机跳转到苹果应用市场(重定向)
response.sendRedirect("https://itunes.apple.com/cn/app/you-lu-lu-shi-duan/id1057109909?mt=8");
} catch (IOException e) {
e.printStackTrace();
}
}else{
//跳转到自定义页面,添加提示在浏览器中打开的提示(转发,在浏览器中打开时,地址不变)
return "dowloadhelp";
}
}
return null;
}
