做移动开发时,时常要判断移动终端是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 }
|
有了上面这些判定条件,那么现在有一个需求,一个二维码,通过扫码方式下载一个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" )){ //小米手机跳转到小米应用市场 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 ; } |
- 关于Android(安卓)Sensor的文章
- IDA 调试SO
- win7 cmd终端连接android手机运行adb shell脚本命令
- Android手机开发ubuntu系统中常用的搜索命令
- android 之数据存储(IO)
- Android(安卓)开发 使用wifi连接adb
- PopupWindow 在华为手机等某些自带虚拟导航栏底部被挡住的解决
- Android(安卓)使用HTTPClient调用Web请求(查询手机号码区域)
- Android手机铃声代码实现
随机推荐
-
Android(安卓)HAL技术详解
-
解决了在Android原生TextView中,当text长
-
Eclipse 点击 Run 自动生成 out 文件的错
-
Android定时器AlarmManager和Timer的区别
-
Dialog使用findViewById 报空指针异常
-
浅析Android中build.gradle的实用技巧
-
ImageView宽度填满屏幕,高度自适应
-
Android(安卓)中文API (68) ―― Bluetooth
-
Android入门开发之SD卡读写操作
-
Android中在代码中设置控件的宽和高