From d48d1bab250a5d3f4671e4537dd7710178aed929 Mon Sep 17 00:00:00 2001 From: xhal Date: Tue, 22 Mar 2022 13:37:16 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=20UserAgent=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=EF=BC=8C=E5=A2=9E=E5=8A=A0=20MiUI/XiaoMi=20=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=20=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/http/useragent/Browser.java | 2 ++ .../main/java/cn/hutool/http/useragent/OS.java | 1 + .../java/cn/hutool/http/useragent/Platform.java | 1 + .../hutool/http/useragent/UserAgentUtilTest.java | 15 +++++++++++++++ 4 files changed, 19 insertions(+) diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java index a858106af..42ce32370 100644 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java @@ -45,6 +45,8 @@ public class Browser extends UserAgentInfo { new Browser("Taobao", "taobao", "AliApp\\(TB\\/([\\d\\w\\.\\-]+)\\)"), // UC浏览器 new Browser("UCBrowser", "UC?Browser", "UC?Browser\\/([\\d\\w\\.\\-]+)"), + // XiaoMi 浏览器 + new Browser("MiuiBrowser", "MiuiBrowser|mibrowser", "MiuiBrowser\\/([\\d\\w\\.\\-]+)"), // 夸克浏览器 new Browser("Quark", "Quark", Other_Version), // 联想浏览器 diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java b/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java index dc86b87e7..d700a0f00 100644 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/OS.java @@ -36,6 +36,7 @@ public class OS extends UserAgentInfo { new OS("Windows", "windows"), // new OS("OSX", "os x (\\d+)[._](\\d+)", "os x (\\d+([._]\\d+)*)"), // new OS("Android", "Android", "Android (\\d+([._]\\d+)*)"),// + new OS("Android", "\\(X\\d+; Linux", "\\(X(\\d+([._]\\d+)*)"),// new OS("Linux", "linux"), // new OS("Wii", "wii", "wii libnup/(\\d+([._]\\d+)*)"), // new OS("PS3", "playstation 3", "playstation 3; (\\d+([._]\\d+)*)"), // diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Platform.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Platform.java index 71d46033c..e0deb08d4 100644 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/Platform.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/Platform.java @@ -54,6 +54,7 @@ public class Platform extends UserAgentInfo { IPAD, // IPOD, // IPHONE, // + new Platform("Android", "XiaoMi|MI "), // ANDROID, // GOOGLE_TV, // new Platform("htcFlyer", "htc_flyer"), // diff --git a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java index d20059849..b7a2b4e1d 100644 --- a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java @@ -389,4 +389,19 @@ public class UserAgentUtilTest { Assert.assertEquals("Windows", ua.getPlatform().toString()); Assert.assertFalse(ua.isMobile()); } + + @Test + public void parseXiaoMiTest(){ + String uaStr = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/89.0.4389.116 Safari/534.24 XiaoMi/MiuiBrowser/16.0.18 swan-mibrowser"; + final UserAgent ua = UserAgentUtil.parse(uaStr); + + Assert.assertEquals("MiuiBrowser", ua.getBrowser().toString()); + Assert.assertEquals("16.0.18", ua.getVersion()); + Assert.assertEquals("Webkit", ua.getEngine().toString()); + Assert.assertEquals("534.24", ua.getEngineVersion()); + Assert.assertEquals("Android", ua.getOs().toString()); + Assert.assertEquals("11", ua.getOsVersion()); + Assert.assertEquals("Android", ua.getPlatform().toString()); + Assert.assertTrue(ua.isMobile()); + } }