做移動開發時,時常要判斷移動終端是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;
}
