扫描二维码,跳到不同终端的下载地址

        刚来实习,就被安排做一个二维码的东西,自己查了查资料,也用了一下Fiddler软件进行了一下抓取数据,根据他的不同标头可以判断不同终端,例如:iphone、iPad、Android、Android pad等等。

        而实现这个功能可以用两种方式来实现:一种是用JS的方式,还有一种不写在js中,但是两者调用的函数都是一样的,只是实现方式不同。但是有一点要注意,就是通过微信扫描的用JS关键字是 MicroMessenger 而不通过JS实现时则是 micromessenger ,有大小写之分。

        上代码,自己一看便知。

通过JS实现:

<script type="text/javascript">
	// 获取终端的相关信息
	var Terminal = {
		// 辨别移动终端类型
		platform : function() {
			var u = navigator.userAgent, app = navigator.appVersion;
			return {
				// android终端或者uc浏览器
				android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1,
				// 是否为iPhone或者QQHD浏览器
				iPhone : u.indexOf('iPhone') > -1,
				// 是否iPad
				iPad : u.indexOf('iPad') > -1,
				// 是否是通过微信的扫一扫打开的
				weChat : u.indexOf('MicroMessenger') > -1
			};
		}(),

	}

	// 根据不同的终端,跳转到不同的地址
	var theUrl = 'xxxxxxxxxxxxxxx';

	// android系统APP
	// 另外:微信扫一扫后打开连接,是不能直接进行下载的,所以你可以将apk放到微云上,使用微云上的apk地址
	if (Terminal.platform.android) {

		if (Terminal.platform.weChat) {
			theUrl = 'xxxxxxxxxxxxxxx';
		} else {
			theUrl = 'xxxxxxxxxxxxxxx';
		}

	};
	if (Terminal.platform.iPhone) {
		if (Terminal.platform.weChat) {
			theUrl = 'xxxxxxxxxxxxxxx';
		} else {
			theUrl = 'xxxxxxxxxxxxxxx';
		}
	};
	if (Terminal.platform.iPad) {
		if (Terminal.platform.weChat) {
			theUrl = 'xxxxxxxxxxxxxxx';
		} else {
			theUrl = 'xxxxxxxxxxxxxxx';
		}

	}

	location.href = theUrl;
</script>

另一种方式实现

String mobileAgentIphone = "iphone"; 
String mobileAgentAndroid= "android";
String mobileAgentIpad = "ipad";
String mobileAgentPhone = "mobile";
String mobileAgentWeChat = "micromessenger";
 if (request.getHeader("User-Agent") != null) {  
	   //判断是否是ios 手机
       if (request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentIphone) >= 0) {
        xxxxxxx;
         }  
       //判断是否是ios 平板
       if (request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentIpad) >= 0) {
 	xxxxxxx;
       }
       //判断是否是Android 平板
       if(request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentAndroid) >= 0) {
         xxxxxxx;
      }  
       //判断是否是Android 手机
       if (request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentAndroid) >= 0
    	&& request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentPhone)>= 0) {
 	  xxxxxxx;
      } 
       //判断是否是微信扫描
        if(request.getHeader("User-Agent").toLowerCase().indexOf(mobileAgentWeChat)>= 0) {
    	 xxxxxxx;
       } 
 }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值