做移動開發時,時常要判斷移動終端是IOS還是android,以及瀏覽器,或者手機型號等等操作
其實在用戶發起請求時,可以通過header來獲取到你想要的東西;我們來看看:
1
2
3
4
5
|
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 型號
,瀏覽器等等;
判斷方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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
}<br><br><br>
|
有了上面這些判定條件,那麼現在有一個需求,一個二維碼,通過掃碼方式下載一個APP,android將根據手機跳轉到不同的應用市場,iphone,ipad等跳轉到蘋果應用市場的下載鏈接代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public Object dowlaodapplawyer(HttpServletRequest request, HttpServletResponse response){
String agent= request.getHeader( "user-agent" );
if (agent.contains( "Android" )){
try {
if (agent.contains( "MI" )){<br> //小米手機跳轉到小米應用市場
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" )){<br> //通過微信進入此界面時,由於蘋果市場並沒有提供在瀏覽器中打開的提示
if (agent.contains( "Safari" )){
try {<br> //聽過手機跳轉到蘋果應用市場(重定向)
response.sendRedirect( "https://itunes.apple.com/cn/app/you-lu-lu-shi-duan/id1057109909?mt=8" );
} catch (IOException e) {
e.printStackTrace();
}
} else {<br> //跳轉到自定義頁面,添加提示在瀏覽器中打開的提示(轉發,在瀏覽器中打開時,地址不變)
return "dowloadhelp" ;
}
}
return null ;
}
|