mirror of
https://github.com/lancedikson/bowser
synced 2026-09-23 20:44:24 +00:00
Add WebView detection for Android and iOS
Co-authored-by: naorpeled <6171622+naorpeled@users.noreply.github.com>
This commit is contained in:
@@ -11,6 +11,7 @@ export const BROWSER_ALIASES_MAP = {
|
||||
BlackBerry: 'blackberry',
|
||||
'ChatGPT-User': 'chatgpt_user',
|
||||
Chrome: 'chrome',
|
||||
'Chrome WebView': 'chrome_webview',
|
||||
ClaudeBot: 'claudebot',
|
||||
Chromium: 'chromium',
|
||||
Diffbot: 'diffbot',
|
||||
@@ -26,6 +27,7 @@ export const BROWSER_ALIASES_MAP = {
|
||||
Googlebot: 'googlebot',
|
||||
GPTBot: 'gptbot',
|
||||
'Internet Explorer': 'ie',
|
||||
'iOS WebView': 'ios_webview',
|
||||
InternetArchiveCrawler: 'internetarchivecrawler',
|
||||
'K-Meleon': 'k_meleon',
|
||||
LibreWolf: 'librewolf',
|
||||
@@ -82,6 +84,7 @@ export const BROWSER_MAP = {
|
||||
brave: 'Brave',
|
||||
chatgpt_user: 'ChatGPT-User',
|
||||
chrome: 'Chrome',
|
||||
chrome_webview: 'Chrome WebView',
|
||||
claudebot: 'ClaudeBot',
|
||||
chromium: 'Chromium',
|
||||
diffbot: 'Diffbot',
|
||||
@@ -98,6 +101,7 @@ export const BROWSER_MAP = {
|
||||
googlebot: 'Googlebot',
|
||||
gptbot: 'GPTBot',
|
||||
ie: 'Internet Explorer',
|
||||
ios_webview: 'iOS WebView',
|
||||
internetarchivecrawler: 'InternetArchiveCrawler',
|
||||
k_meleon: 'K-Meleon',
|
||||
librewolf: 'LibreWolf',
|
||||
|
||||
@@ -1092,6 +1092,25 @@ const browsersList = [
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
/* Android WebView */
|
||||
{
|
||||
test(parser) {
|
||||
return parser.test(/android/i) && parser.test(/; wv\)/i);
|
||||
},
|
||||
describe(ua) {
|
||||
const browser = {
|
||||
name: 'Chrome WebView',
|
||||
};
|
||||
const version = Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, ua);
|
||||
|
||||
if (version) {
|
||||
browser.version = version;
|
||||
}
|
||||
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
test: [/chrome|crios|crmo/i],
|
||||
describe(ua) {
|
||||
@@ -1161,6 +1180,27 @@ const browsersList = [
|
||||
},
|
||||
},
|
||||
|
||||
/* iOS WebView */
|
||||
{
|
||||
test(parser) {
|
||||
return parser.test(/(iPhone|iPad|iPod)/i)
|
||||
&& parser.test(/AppleWebKit/i)
|
||||
&& !parser.test(/Safari/i);
|
||||
},
|
||||
describe(ua) {
|
||||
const browser = {
|
||||
name: 'iOS WebView',
|
||||
};
|
||||
const version = Utils.getFirstMatch(/AppleWebKit\/(\d+(\.?_?\d+)+)/i, ua);
|
||||
|
||||
if (version) {
|
||||
browser.version = version;
|
||||
}
|
||||
|
||||
return browser;
|
||||
},
|
||||
},
|
||||
|
||||
/* Safari */
|
||||
{
|
||||
test: [/safari|applewebkit/i],
|
||||
|
||||
@@ -3831,3 +3831,66 @@
|
||||
engine:
|
||||
name: "Gecko"
|
||||
version: "20100101"
|
||||
Chrome WebView:
|
||||
-
|
||||
ua: "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile Safari/537.36"
|
||||
spec:
|
||||
browser:
|
||||
name: "Chrome WebView"
|
||||
version: "43.0.2357.65"
|
||||
os:
|
||||
name: "Android"
|
||||
version: "5.1.1"
|
||||
versionName: "Lollipop"
|
||||
platform:
|
||||
type: "mobile"
|
||||
vendor: "Nexus"
|
||||
engine:
|
||||
name: "Blink"
|
||||
-
|
||||
ua: "Mozilla/5.0 (Linux; Android 8.0.0; SM-G9300 Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/64.0.3282.137 Mobile Safari/537.36"
|
||||
spec:
|
||||
browser:
|
||||
name: "Chrome WebView"
|
||||
version: "64.0.3282.137"
|
||||
os:
|
||||
name: "Android"
|
||||
version: "8.0.0"
|
||||
versionName: "Oreo"
|
||||
platform:
|
||||
type: "mobile"
|
||||
engine:
|
||||
name: "Blink"
|
||||
iOS WebView:
|
||||
-
|
||||
ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/603.1.23 (KHTML, like Gecko) Mobile/14E5239e"
|
||||
spec:
|
||||
browser:
|
||||
name: "iOS WebView"
|
||||
version: "603.1.23"
|
||||
os:
|
||||
name: "iOS"
|
||||
version: "10.3"
|
||||
platform:
|
||||
type: "mobile"
|
||||
vendor: "Apple"
|
||||
model: "iPhone"
|
||||
engine:
|
||||
name: "WebKit"
|
||||
version: "603.1.23"
|
||||
-
|
||||
ua: "Mozilla/5.0 (iPad; CPU OS 9_0 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13A344"
|
||||
spec:
|
||||
browser:
|
||||
name: "iOS WebView"
|
||||
version: "601.1.46"
|
||||
os:
|
||||
name: "iOS"
|
||||
version: "9.0"
|
||||
platform:
|
||||
type: "tablet"
|
||||
vendor: "Apple"
|
||||
model: "iPad"
|
||||
engine:
|
||||
name: "WebKit"
|
||||
version: "601.1.46"
|
||||
|
||||
Reference in New Issue
Block a user