mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 16:08:47 +03:00
Fix #636 - Add new browser: HeyTap | Fix #248 - Add 'Mobile' prefix for mobile version of Chrome, Firefox, Safari
This commit is contained in:
parent
33f02099d1
commit
172f57ffea
@ -102,16 +102,16 @@ The methods are self explanatory, here's a small overview on all the available m
|
|||||||
# Possible 'browser.name':
|
# Possible 'browser.name':
|
||||||
2345Explorer, 360 Browser, Amaya, Android Browser, Arora, Avant, Avast, AVG,
|
2345Explorer, 360 Browser, Amaya, Android Browser, Arora, Avant, Avast, AVG,
|
||||||
BIDUBrowser, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
BIDUBrowser, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
|
||||||
Chrome [Mobile/Headless/WebView], Chromium, Cobalt, Comodo Dragon, Dillo,
|
[Mobile] Chrome [Headless/WebView], Chromium, Cobalt, Comodo Dragon, Dillo,
|
||||||
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
|
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
|
||||||
Firebird, Firefox [Mobile/Focus/Reality], Flock, Flow, GSA, GoBrowser,
|
Firebird, [Mobile] Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, HeyTap,
|
||||||
Huawei Browser, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon, Iceweasel,
|
Huawei Browser, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon, Iceweasel,
|
||||||
Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon, Kindle, Klar,
|
Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon, Kindle, Klar,
|
||||||
Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape, Lynx, MIUI Browser,
|
Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape, Lynx, MIUI Browser,
|
||||||
Maemo Browser, Maemo, Maxthon, MetaSr Midori, Minimo, Mosaic, Mozilla, NetFront,
|
Maemo Browser, Maemo, Maxthon, MetaSr Midori, Minimo, Mosaic, Mozilla, NetFront,
|
||||||
NetSurf, Netfront, Netscape, NokiaBrowser, Obigo, Oculus Browser, OmniWeb,
|
NetSurf, Netfront, Netscape, NokiaBrowser, Obigo, Oculus Browser, OmniWeb,
|
||||||
Opera Coast, Opera [Mini/Mobi/Tablet], PaleMoon, PhantomJS, Phoenix, Polaris,
|
Opera Coast, Opera [Mini/Mobi/Tablet], PaleMoon, PhantomJS, Phoenix, Polaris,
|
||||||
Puffin, QQ, QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt, Safari [Mobile],
|
Puffin, QQ, QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt, [Mobile] Safari,
|
||||||
Sailfish Browser, Samsung Browser, SeaMonkey, Silk, Skyfire, Sleipnir, Slim,
|
Sailfish Browser, Samsung Browser, SeaMonkey, Silk, Skyfire, Sleipnir, Slim,
|
||||||
SlimBrowser, Swiftfox, Tesla, Tizen Browser, UCBrowser, UP.Browser, Viera,
|
SlimBrowser, Swiftfox, Tesla, Tizen Browser, UCBrowser, UP.Browser, Viera,
|
||||||
Vivaldi, Waterfox, WeChat, Weibo, Yandex, baidu, iCab, w3m, Whale Browser, ...
|
Vivaldi, Waterfox, WeChat, Weibo, Yandex, baidu, iCab, w3m, Whale Browser, ...
|
||||||
|
@ -75,8 +75,8 @@
|
|||||||
XIAOMI = 'Xiaomi',
|
XIAOMI = 'Xiaomi',
|
||||||
ZEBRA = 'Zebra',
|
ZEBRA = 'Zebra',
|
||||||
ZTE = 'ZTE',
|
ZTE = 'ZTE',
|
||||||
|
PREFIX_MOBILE = 'Mobile ',
|
||||||
SUFFIX_BROWSER = ' Browser',
|
SUFFIX_BROWSER = ' Browser',
|
||||||
SUFFIX_MOBILE = 'Mobile',
|
|
||||||
CHROME = 'Chrome',
|
CHROME = 'Chrome',
|
||||||
EDGE = 'Edge',
|
EDGE = 'Edge',
|
||||||
FIREFOX = 'Firefox',
|
FIREFOX = 'Firefox',
|
||||||
@ -280,8 +280,9 @@
|
|||||||
|
|
||||||
browser : [[
|
browser : [[
|
||||||
|
|
||||||
|
// Most common regardless engine
|
||||||
/\b(?:crmo|crios)\/([\w\.]+)/i // Chrome for Android/iOS
|
/\b(?:crmo|crios)\/([\w\.]+)/i // Chrome for Android/iOS
|
||||||
], [VERSION, [NAME, 'Chrome']], [
|
], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [
|
||||||
/edg(?:e|ios|a)?\/([\w\.]+)/i // Microsoft Edge
|
/edg(?:e|ios|a)?\/([\w\.]+)/i // Microsoft Edge
|
||||||
], [VERSION, [NAME, 'Edge']], [
|
], [VERSION, [NAME, 'Edge']], [
|
||||||
|
|
||||||
@ -305,11 +306,12 @@
|
|||||||
|
|
||||||
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
|
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
|
||||||
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
|
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
|
||||||
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
|
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo
|
||||||
|
/(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi
|
||||||
/(weibo)__([\d\.]+)/i // Weibo
|
/(weibo)__([\d\.]+)/i // Weibo
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser
|
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i // UCBrowser
|
||||||
], [VERSION, [NAME, 'UC'+SUFFIX_BROWSER]], [
|
], [VERSION, [NAME, 'UCBrowser']], [
|
||||||
/microm.+\bqbcore\/([\w\.]+)/i, // WeChat Desktop for Windows Built-in Browser
|
/microm.+\bqbcore\/([\w\.]+)/i, // WeChat Desktop for Windows Built-in Browser
|
||||||
/\bqbcore\/([\w\.]+).+microm/i
|
/\bqbcore\/([\w\.]+).+microm/i
|
||||||
], [VERSION, [NAME, 'WeChat(Win) Desktop']], [
|
], [VERSION, [NAME, 'WeChat(Win) Desktop']], [
|
||||||
@ -336,7 +338,7 @@
|
|||||||
/miuibrowser\/([\w\.]+)/i // MIUI Browser
|
/miuibrowser\/([\w\.]+)/i // MIUI Browser
|
||||||
], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [
|
], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [
|
||||||
/fxios\/([\w\.-]+)/i // Firefox for iOS
|
/fxios\/([\w\.-]+)/i // Firefox for iOS
|
||||||
], [VERSION, [NAME, 'Firefox '+SUFFIX_MOBILE]], [
|
], [VERSION, [NAME, PREFIX_MOBILE + 'Firefox']], [
|
||||||
/\bqihu|(qi?ho?o?|360)browser/i // 360
|
/\bqihu|(qi?ho?o?|360)browser/i // 360
|
||||||
], [[NAME, '360' + SUFFIX_BROWSER]], [
|
], [[NAME, '360' + SUFFIX_BROWSER]], [
|
||||||
/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i
|
/(oculus|samsung|sailfish|huawei)browser\/([\w\.]+)/i
|
||||||
@ -373,17 +375,16 @@
|
|||||||
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i // Android Browser
|
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i // Android Browser
|
||||||
], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [
|
], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [
|
||||||
|
|
||||||
/chrome\/([\w\.]+) mobile/i, // Chrome Mobile
|
/chrome\/([\w\.]+) mobile/i // Chrome Mobile
|
||||||
/(?:(?:android.+)crmo|crios)\/([\w\.]+)/i // Chrome for Android/iOS
|
], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [
|
||||||
], [VERSION, [NAME, 'Chrome '+SUFFIX_MOBILE]], [
|
|
||||||
|
|
||||||
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia
|
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia
|
||||||
], [NAME, VERSION], [
|
], [NAME, VERSION], [
|
||||||
|
|
||||||
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i // Safari Mobile
|
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i // Safari Mobile
|
||||||
], [VERSION, [NAME, 'Safari '+SUFFIX_MOBILE]], [
|
], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [
|
||||||
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
||||||
], [[NAME, 'Safari '+SUFFIX_MOBILE]], [
|
], [[NAME, PREFIX_MOBILE + 'Safari']], [
|
||||||
/version\/([\w\.\,]+) .*(safari)/i // Safari
|
/version\/([\w\.\,]+) .*(safari)/i // Safari
|
||||||
], [VERSION, NAME], [
|
], [VERSION, NAME], [
|
||||||
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
|
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i // Safari < 3.0
|
||||||
@ -394,7 +395,7 @@
|
|||||||
|
|
||||||
// Gecko based
|
// Gecko based
|
||||||
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i // Firefox Mobile
|
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i // Firefox Mobile
|
||||||
], [[NAME, 'Firefox '+SUFFIX_MOBILE], VERSION], [
|
], [[NAME, PREFIX_MOBILE + 'Firefox'], VERSION], [
|
||||||
/(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape
|
/(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape
|
||||||
], [[NAME, 'Netscape'], VERSION], [
|
], [[NAME, 'Netscape'], VERSION], [
|
||||||
/mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality
|
/mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality
|
||||||
|
@ -234,7 +234,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3",
|
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Chrome",
|
"name" : "Mobile Chrome",
|
||||||
"version" : "19.0.1084.60",
|
"version" : "19.0.1084.60",
|
||||||
"major" : "19"
|
"major" : "19"
|
||||||
}
|
}
|
||||||
@ -254,7 +254,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7",
|
"ua" : "Mozilla/5.0 (Linux; U; Android-4.0.3; en-us; Galaxy Nexus Build/IML74K) AppleWebKit/535.7 (KHTML, like Gecko) CrMo/16.0.912.75 Mobile Safari/535.7",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Chrome",
|
"name" : "Mobile Chrome",
|
||||||
"version" : "16.0.912.75",
|
"version" : "16.0.912.75",
|
||||||
"major" : "16"
|
"major" : "16"
|
||||||
}
|
}
|
||||||
@ -508,6 +508,16 @@
|
|||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"desc" : "HeyTap",
|
||||||
|
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.61 Safari/537.36 HeyTapBrowser/40.8.10.1",
|
||||||
|
"expect" :
|
||||||
|
{
|
||||||
|
"name" : "HeyTap",
|
||||||
|
"version" : "40.8.10.1",
|
||||||
|
"major" : "40"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"desc" : "HuaweiBrowser",
|
"desc" : "HuaweiBrowser",
|
||||||
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00;HMSCore/4.0.0 GMS/10.4 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 6.0.1; LYA-AL00;HMSCore/4.0.0 GMS/10.4 ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.64 HuaweiBrowser/10.0.3.102 Mobile Safari/537.36",
|
||||||
@ -753,7 +763,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7",
|
"ua" : "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Safari Mobile",
|
"name" : "Mobile Safari",
|
||||||
"version" : "4.0.5",
|
"version" : "4.0.5",
|
||||||
"major" : "4"
|
"major" : "4"
|
||||||
}
|
}
|
||||||
@ -763,7 +773,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Safari/604.1",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Safari/604.1",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Safari Mobile",
|
"name" : "Mobile Safari",
|
||||||
"version" : "undefined",
|
"version" : "undefined",
|
||||||
"major" : "undefined"
|
"major" : "undefined"
|
||||||
}
|
}
|
||||||
@ -1413,7 +1423,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/1.1 Mobile/13B143 Safari/601.1.46",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) FxiOS/1.1 Mobile/13B143 Safari/601.1.46",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Firefox Mobile",
|
"name" : "Mobile Firefox",
|
||||||
"version" : "1.1",
|
"version" : "1.1",
|
||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
@ -1423,7 +1433,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",
|
"ua" : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Firefox Mobile",
|
"name" : "Mobile Firefox",
|
||||||
"version" : "1.0",
|
"version" : "1.0",
|
||||||
"major" : "1"
|
"major" : "1"
|
||||||
}
|
}
|
||||||
@ -1617,7 +1627,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6,2 Mobile/15E148 Safari/604.1",
|
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 15_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6,2 Mobile/15E148 Safari/604.1",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Safari Mobile",
|
"name" : "Mobile Safari",
|
||||||
"version" : "15.6,2",
|
"version" : "15.6,2",
|
||||||
"major" : "15"
|
"major" : "15"
|
||||||
}
|
}
|
||||||
@ -1708,7 +1718,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36",
|
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.83 Mobile Safari/537.36",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Chrome Mobile",
|
"name" : "Mobile Chrome",
|
||||||
"version" : "58.0.3029.83",
|
"version" : "58.0.3029.83",
|
||||||
"major" : "58"
|
"major" : "58"
|
||||||
}
|
}
|
||||||
@ -1718,7 +1728,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) FxiOS/7.5b3349 Mobile/14F89 Safari/603.2.4",
|
"ua" : "Mozilla/5.0 (Linux; Android 7.1.2; Nexus 5X Build/N2G47W) AppleWebKit/537.36 (KHTML, like Gecko) FxiOS/7.5b3349 Mobile/14F89 Safari/603.2.4",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Firefox Mobile",
|
"name" : "Mobile Firefox",
|
||||||
"version" : "7.5b3349",
|
"version" : "7.5b3349",
|
||||||
"major" : "7"
|
"major" : "7"
|
||||||
}
|
}
|
||||||
@ -1728,7 +1738,7 @@
|
|||||||
"ua" : "Mozilla/5.0 (Android 5.0; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0",
|
"ua" : "Mozilla/5.0 (Android 5.0; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0",
|
||||||
"expect" :
|
"expect" :
|
||||||
{
|
{
|
||||||
"name" : "Firefox Mobile",
|
"name" : "Mobile Firefox",
|
||||||
"version" : "41.0",
|
"version" : "41.0",
|
||||||
"major" : "41"
|
"major" : "41"
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user