mirror of
https://github.com/lancedikson/bowser
synced 2026-10-09 04:12:31 +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',
|
BlackBerry: 'blackberry',
|
||||||
'ChatGPT-User': 'chatgpt_user',
|
'ChatGPT-User': 'chatgpt_user',
|
||||||
Chrome: 'chrome',
|
Chrome: 'chrome',
|
||||||
|
'Chrome WebView': 'chrome_webview',
|
||||||
ClaudeBot: 'claudebot',
|
ClaudeBot: 'claudebot',
|
||||||
Chromium: 'chromium',
|
Chromium: 'chromium',
|
||||||
Diffbot: 'diffbot',
|
Diffbot: 'diffbot',
|
||||||
@@ -26,6 +27,7 @@ export const BROWSER_ALIASES_MAP = {
|
|||||||
Googlebot: 'googlebot',
|
Googlebot: 'googlebot',
|
||||||
GPTBot: 'gptbot',
|
GPTBot: 'gptbot',
|
||||||
'Internet Explorer': 'ie',
|
'Internet Explorer': 'ie',
|
||||||
|
'iOS WebView': 'ios_webview',
|
||||||
InternetArchiveCrawler: 'internetarchivecrawler',
|
InternetArchiveCrawler: 'internetarchivecrawler',
|
||||||
'K-Meleon': 'k_meleon',
|
'K-Meleon': 'k_meleon',
|
||||||
LibreWolf: 'librewolf',
|
LibreWolf: 'librewolf',
|
||||||
@@ -82,6 +84,7 @@ export const BROWSER_MAP = {
|
|||||||
brave: 'Brave',
|
brave: 'Brave',
|
||||||
chatgpt_user: 'ChatGPT-User',
|
chatgpt_user: 'ChatGPT-User',
|
||||||
chrome: 'Chrome',
|
chrome: 'Chrome',
|
||||||
|
chrome_webview: 'Chrome WebView',
|
||||||
claudebot: 'ClaudeBot',
|
claudebot: 'ClaudeBot',
|
||||||
chromium: 'Chromium',
|
chromium: 'Chromium',
|
||||||
diffbot: 'Diffbot',
|
diffbot: 'Diffbot',
|
||||||
@@ -98,6 +101,7 @@ export const BROWSER_MAP = {
|
|||||||
googlebot: 'Googlebot',
|
googlebot: 'Googlebot',
|
||||||
gptbot: 'GPTBot',
|
gptbot: 'GPTBot',
|
||||||
ie: 'Internet Explorer',
|
ie: 'Internet Explorer',
|
||||||
|
ios_webview: 'iOS WebView',
|
||||||
internetarchivecrawler: 'InternetArchiveCrawler',
|
internetarchivecrawler: 'InternetArchiveCrawler',
|
||||||
k_meleon: 'K-Meleon',
|
k_meleon: 'K-Meleon',
|
||||||
librewolf: 'LibreWolf',
|
librewolf: 'LibreWolf',
|
||||||
|
|||||||
@@ -1092,6 +1092,25 @@ const browsersList = [
|
|||||||
return browser;
|
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],
|
test: [/chrome|crios|crmo/i],
|
||||||
describe(ua) {
|
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 */
|
/* Safari */
|
||||||
{
|
{
|
||||||
test: [/safari|applewebkit/i],
|
test: [/safari|applewebkit/i],
|
||||||
|
|||||||
@@ -3831,3 +3831,66 @@
|
|||||||
engine:
|
engine:
|
||||||
name: "Gecko"
|
name: "Gecko"
|
||||||
version: "20100101"
|
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