iOS 上的浏览​​器检测

Browser Detection on iOS

我目前正在努力解决移动苹果设备上的浏览器检测问题。我在同一台设备上测试了 safari、chrome 和 firefox,结果让我很难检测到确切的浏览器。看看:

Safari

Mozilla/5.0(iPhone;CPUiPhoneOS12_2喜欢MacOS X) Apple WebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Mobile/15E148 Safari 604/1

os=mac;浏览器=野生动物园;设备=iphone; os_version=未知; browser_version=12.1

Chrome(桌面视图)

Mozilla/5.0 (Macintosh; 英特尔 Mac OS X 10_13_5) 苹果 WebKit/605 .1.15(KHTML,如 Gecko)Version/11.1.1 Safari/605.1.15

os=mac;浏览器=野生动物园;设备=未知; os_version="mac-os-x-13"; browser_version=11.1.1

Chrome(移动端查看)

Mozilla/5.0(iPhone;CPUiPhoneOS12_2喜欢MacOS X) Apple WebKit/605.1.15 (KHTML, like Gecko) CriOs/77.0.3865.103 Mobile/15E148 Safari 605/1

os=mac;浏览器=chrome;设备=iphone; os_version=未知; browser_version=77.0.3865.103

Firefox(桌面视图)

Mozilla/5.0 (Macintosh; 英特尔 Mac OS X 10_11_1) 苹果 WebKit/605 .1.15(KHTML,如 Gecko)Version/12.0 Safari/605.1.15

os=mac;浏览器=野生动物园;设备=未知; os_version="mac-os-x-13"; browser_version=12.0

Firefox(手机版)

Mozilla/5.0(iPhone;CPUiPhoneOS12_2喜欢MacOS X) Apple WebKit/605.1.15 (KHTML, like Gecko) FxiOS/19.1b16203 Mobile/15E148 Safari/605.1.15

os=mac;浏览器=野生动物园;设备=iphone; os_version=未知; browser_version=0

第一行是用户代理字符串,其他细节来自我正在使用的库。如您所见,很难从这些详细信息中检测到正确的设备。因此,我只想在移动 iOS 设备上允许使用 safari,但是 most 其他版本也将自己伪装成 safari。

是否有浏览器检测的最佳实践?请帮忙。

我刚决定使用这个正则表达式: https://coderwall.com/p/ktrbhq/detect-mobile-safari

总之,我不喜欢这个解决方案。非常感谢更好的方法。