Merge remote-tracking branch 'origin/v5-dev' into v5-dev

This commit is contained in:
wenlianggong
2024-06-25 20:43:23 +08:00
6 changed files with 48 additions and 5 deletions

View File

@@ -104,4 +104,14 @@ public class OS extends UserAgentInfo {
}
return ReUtil.getGroup1(this.versionPattern, userAgentString);
}
/**
* 是否为MacOS
*
* @return 是否为MacOS
* @since 5.8.29
*/
public boolean isMacOS(){
return "OSX".equals(getName());
}
}

View File

@@ -40,7 +40,13 @@ public class UserAgentParser {
// 平台
final Platform platform = parsePlatform(userAgentString);
userAgent.setPlatform(platform);
userAgent.setMobile(platform.isMobile() || browser.isMobile());
// issue#IA74K2 MACOS下的微信不属于移动平台
if(platform.isMobile() || browser.isMobile()){
if(false == os.isMacOS()){
userAgent.setMobile(true);
}
}
return userAgent;

View File

@@ -488,4 +488,19 @@ public class UserAgentUtilTest {
Assert.assertEquals("Windows", ua2.getPlatform().toString());
Assert.assertFalse(ua2.isMobile());
}
@Test
public void issueIA74K2Test() {
UserAgent ua = UserAgentUtil.parse(
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) MicroMessenger/6.8.0(0x16080000) MacWechat/3.8.7(0x13080710) Safari/605.1.15 NetType/WIFI");
Assert.assertEquals("MicroMessenger", ua.getBrowser().toString());
Assert.assertEquals("6.8.0", ua.getVersion());
Assert.assertEquals("Webkit", ua.getEngine().toString());
Assert.assertEquals("605.1.15", ua.getEngineVersion());
Assert.assertEquals("OSX", ua.getOs().toString());
Assert.assertEquals("10_15_7", ua.getOsVersion());
Assert.assertEquals("Mac", ua.getPlatform().toString());
Assert.assertFalse(ua.isMobile());
}
}