[JavaCore] 微信手机浏览器版本判断

公司要做微支付,微信浏览器版本要大于5


package com.garinzhang.web.weixin;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

/**
*类说明
*@author Garin Zhang
*/
public class WchatUtil {

public static final String WEI_XIN_BROWSER = "MicroMessenger/";
public static final int WEI_XIN_LEGAL_VERSION = 5;
/**
* 正则使用不熟练,只能自己苦逼解析
* @param userAgent
* @return
*/
public static boolean isLegalVersion(String userAgent) {
// 判断是否为微信,并对支付渠道做相应处理
// "Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko) Mobile/9B206 MicroMessenger/5.0"
// String userAgent = request.getHeader("user-agent");
boolean isLegalVersion = false;
if(StringUtils.isNotBlank(userAgent)) {
// 判断是否为微信
int position = userAgent.indexOf(WEI_XIN_BROWSER);
userAgent.matches(WEI_XIN_BROWSER);
if(position != -1) {
String versionStr = userAgent.substring(position + WEI_XIN_BROWSER.length());
String[] splitVersion = versionStr.split("\\.");

// 程序解析
if(splitVersion != null && splitVersion.length > 0) {
String mainVersion = splitVersion[0];
// 判断主版本号大于5
if(NumberUtils.isNumber(mainVersion)) {
int i = Integer.valueOf(mainVersion);
if(i >= WEI_XIN_LEGAL_VERSION) {
isLegalVersion = true;
}
}
}
}
}
System.out.println("Agent: " + userAgent + ", isLegalVersion: " + isLegalVersion);
return isLegalVersion;
}
public static void main(String[] args) {
// 本来准备直接按照如下比较,结果发现当主版本号超过10的时候,就不灵了
System.out.println("5.0".compareTo("5.0.2")); // =0
System.out.println("5.0".compareTo("10.1")); // >0
System.out.println("5.0".compareTo("0")); // >0
System.out.println("5.0".compareTo("4.0.2")); // >0
System.out.println("5.0".compareTo("5.1.2")); // <0

// 写个方法单独解析
isLegalVersion("Mobile/9B206 MicroMessenger/5.0"); // true
isLegalVersion("Mobile/9B206 MicroMessenger/5.0.2");// true
isLegalVersion("Mobile/9B206 MicroMessenger/4.0"); // false
isLegalVersion("Mobile/9B206 MicroMessenger/5.1"); // true
isLegalVersion("Mobile/9B206 MicroMessenger/10.1"); // true
isLegalVersion("Mobile/9B206 MicroMessenger/0.1"); // false
}
}

正则版本,待正则熟练之后再补充

[JavaCore] 微信手机浏览器版本判断,布布扣,bubuko.com

时间: 2024-10-06 09:46:02

[JavaCore] 微信手机浏览器版本判断的相关文章

javascript判断手机浏览器版本信息

<script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return {//移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto

[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

截至自2017-08-11,支持现世已出的几乎所有PC端浏览器版本判断. 受支持的PC端浏览器列表: Edge IE Chrome Firefox Opera Safari QQ浏览器 360系列浏览器 使用IE内核的非主流浏览器 使用Chrome内核的非主流浏览器 使用混合内核的非主流浏览器 获取浏览器版本方法: function getBroswer(){ var sys = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s

css HACK之浏览器版本判断【转】

<!--[if lte IE 6]> <![endif]--> IE6及其以下版本可见 <!--[if lte IE 7]> <![endif]--> IE7及其以下版本可见 <!--[if IE 6]> <![endif]--> 只有IE6版本可见 <![if !IE]> <![endif]> 除了IE以外的版本 <!--[if lt IE 8]> <![endif]--> IE8以下

浏览器版本判断

页面引入: <script src="${ctx}/static/jquery/jquery-1.10.2.min.js"></script>    <script src="${ctx}/static/jquery/jquery.browser.js"></script 页面1:一般都在登入页面. $(document).ready(function(){    var bro=$.browser;    if(bro.m

Iphone 手机系统版本判断

double version = [[UIDevice currentDevice].systemVersion doubleValue];//判定系统版本.

jquery判断浏览器版本插件,jquery-browser.js

一.jquery判断浏览器版本插件,jquery-browser.js jquery 1.9 之后已经删除判断浏览器版本的方法: $.browser.msie $.browser.version 原因是: 注意:通过user agent字符串来检测浏览器不是一个好主意,在1.9中将完全移除该方法,不过你可以使用jQuery Migrate(迁移)插件.或者你可以试试Modernizr. 但如果想用怎么办呢? 二.解决方法: 复制下面的代码,保存为jquery-browser.js,在jquery

js判断手机浏览器操作系统和微信浏览器的方法

做手机端的前端开发,少不了对手机平台的判断.如,对于app下载,就要判断在Android平台下就显示Android下载提示:在iOS平台下就显示iOS下载提示. 今天就为大家介绍一下用js判断手机客户端平台及系统平台的方法: <script type="text/javascript"> //手机端判断各个平台浏览器及操作系统平台 function checkPlatform(){ if(/android/i.test(navigator.userAgent)){ docu

js网页判断移动终端浏览器版本信息是安卓还是苹果ios,判断在微信浏览器跳转不同页面,生成二维码

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>移动终端浏览器版本信息</title> </head> <body> <script type="text/javascript"> var browser = { versions: function () { var u = naviga

微信jsApI及微信分享对应在手机浏览器的调用总结。

摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript Interface)的文章,不过随着微信官方的调整,部分API已经不能直接使用,比如类似直接分享到朋友圈 WeixinJSBridge.invoke('shareTimeline',data,callback) 这样的功能,直接调用,会得到一个访问拒绝的response.后来重新调研了下,整理出来了