Компонируемое обнаружение пользовательского агента с использованием Ramda , питаемое от ua-parser-js .
Потому что в браузерах есть ошибки Bugz.
MDN предлагает несколько хороших советов о том, когда и когда не использовать обнаружение пользовательского агента.
Бугз не на самом деле не другая библиотека, это просто легкая* функциональная обертка вокруг ua-parser-js .
* Для тех, кто уже использует рамду.
$ npm install ramda
$ npm install bugz
Ramda определяется как зависимость от сверстников, означающую, что она должна быть определена в вашем собственном пакете.
https://repl.it/nlm0/1
import { isOSName } from 'bugz' ;
const isWindows = isOSName ( 'Windows' ) ;
if ( isWindows ( window . navigator . userAgent ) ) {
console . log ( 'OS is Windows' ) ;
} import { isOSName , isBrowserName } from 'bugz' ;
import { allPass } from 'ramda' ;
const isWindows = isOSName ( 'Windows' ) ;
const isFirefox = isBrowserName ( 'Firefox' ) ;
const isWindowsFirefox = allPass ( [
isWindows ,
isFirefox
] ) ;
if ( isWindowsFirefox ( window . navigator . userAgent ) ) {
console . log ( 'OS is Windows and Browser is Firefox' ) ;
} import { isOSName , isBrowserName , isBrowserVersionLt } from 'bugz' ;
import { allPass } from 'ramda' ;
const isWindows = isOSName ( 'Windows' ) ;
const isFirefox = isBrowserName ( 'Firefox' ) ;
const isBrowserVersionLt3_7 = isBrowserVersionLt ( '3.7' ) ;
const isWindowsFirefoxLt3_7 = allPass ( [
isWindows ,
isFirefox ,
isBrowserVersionLt3_7
] ) ;
if ( isWindowsFirefoxLt3_7 ( window . navigator . userAgent ) ) {
console . log ( 'OS is Windows and Browser is Firefox < 3.7' ) ;
} Дальнейшие примеры можно найти здесь.
Все функции по умолчанию карририруют.
о (ua: string) → void
Войдет вся информация, полученная от строки агента пользователя в консоли.
getBrowser (ua: string) → { name: string, version: string, majorVersion: number }
Возвращает браузер из строки агента пользователя.
getBrowserName (ua: string) → string
Возвращает имя браузера из строки агента пользователя.
GetBrowserVersion (ua: string) → string
Возвращает версию браузера из строки агента пользователя.
getEngine (ua: string) → { name: string, version: string }
Возвращает двигатель из строки агента пользователя.
getEnginEname (ua: string) → string
Возвращает имя двигателя из строки агента пользователя.
GetEngineVersion (ua: string) → string
Возвращает версию двигателя из строки агента пользователя.
getos (ua: string) → { name: string, version: string }
Возвращает ОС из строки агента пользователя.
getoSname (ua: string) → string
Возвращает имя ОС из строки агента пользователя.
getosversion (ua: string) → string
Возвращает версию ОС из строки агента пользователя.
isandroid (ua: string) → boolean
Возвращает, является ли операционная система Android.
IsandroidBrowser (ua: string) → boolean
Возвращает, является ли браузер браузером Android.
isbrowsername (name: string) → (ua: string) → boolean
Возвращает, является ли имя браузера name .
isbrowserVersion (version: string) → (ua: string) → boolean
Возвращает, является ли version браузера.
isbrowserversiongt (version: string) → (ua: string) → boolean
Возвращает ли версия браузера больше version .
isbrowserversiongte (version: string) → (ua: string) → boolean
Возвращает, больше ли версия браузера больше или равна version .
isbrowserVersionLt (version: string) → (ua: string) → boolean
Возвращает ли версия браузера меньше version .
isbrowserVersionLte (version: string) → (ua: string) → boolean
Возвращает ли версия браузера меньше или равна version .
ischrome (ua: string) → boolean
Возвращает, является ли браузер хром.
Isedge (ua: string) → boolean
Возвращает, является ли браузер краем.
Isedgehtml (ua: string) → boolean
Возвращает, является ли двигатель EdgeHtml.
IsengineName (name: string) → (ua: string) → boolean
Возвращает, является ли название двигателя name .
Isengineversion (version: string) → (ua: string) → boolean
Возвращает, является ли версия двигателя version .
isengineversiongt (version: string) → (ua: string) → boolean
Возвращает ли версия двигателя больше, чем version .
isengineversiongte (version: string) → (ua: string) → boolean
Возвращает ли версия двигателя больше или равна version .
isengineversionlt (version: string) → (ua: string) → boolean
Возвращает ли версия двигателя меньше, чем version .
isengineversionlte (version: string) → (ua: string) → boolean
Возвращает ли версия двигателя меньше или равна version .
isfirefox (ua: string) → boolean
Возвращает, является ли браузер Firefox.
Isgecko (ua: string) → boolean
Возвращает, является ли двигатель гекконом.
Isie (ua: string) → boolean
Возвращает, является ли браузер Internet Explorer.
isiemobile (ua: string) → boolean
Возвращает, является ли браузер Internet Explorer Mobile.
Isios (ua: string) → boolean
Возвращает, является ли операционная система iOS.
ismacos (ua: string) → boolean
Возвращает, является ли операционная система Mac OS.
ismobilesafari (ua: string) → boolean
Возвращает, является ли браузер мобильным сафари.
isosname (name: string) → (ua: string) → boolean
Возвращает, является ли имя ОС name .
Isosversion (version: string) → (ua: string) → boolean
Возвращает, является ли версия ОС version .
isosversiongt (version: string) → (ua: string) → boolean
Возвращает ли версия ОС больше, чем version .
isosversiongte (version: string) → (ua: string) → boolean
Возвращает ли версия ОС больше или равна version .
isosversionlt (version: string) → (ua: string) → boolean
Возвращает ли версия ОС меньше version .
isosversionlte (version: string) → (ua: string) → boolean
Возвращает ли версия ОС меньше или равна version .
isopera (ua: string) → boolean
Возвращает, является ли браузер опера.
isoperamobile (ua: string) → boolean
Возвращает, является ли браузер Opera Mobile.
ispresto (ua: string) → boolean
Возвращает, является ли двигатель Presto.
Issafari (ua: string) → boolean
Возвращает, является ли браузер Safari (настольный компьютер).
Istridident (ua: string) → boolean
Возвращает, является ли двигатель трезубец.
iswebkit (ua: string) → boolean
Возвращает, является ли двигатель Webkit.
iswindows (ua: string) → boolean
Возвращает, является ли операционная система Windows.
Iswindowsphone (ua: string) → boolean
Возвращает, является ли операционная система Windows Phone.
parse (ua: string) → { ua: string, browser: { name: string, version: string, majorVersion: string }, engine: { name: string, version: string }, os: { name: string, version: string }
Возвращает всю информацию, полученную из строки агента пользователя.
import { isBrowserName } from 'bugz' ;К сожалению, встряхивание деревьев не особенно эффективно для Bugz, потому что большинство экспорта являются чистыми карри -функциями, которые в настоящее время не подвержены устранению мертвого кода. Следовательно, предлагается модульная сборка CommonJS.
const bugz = require ( 'bugz' ) ; // Or modular for optimized builds
const isBrowserName = require ( 'bugz/isBrowserName' ) ;
const isBrowserVersion = require ( 'bugz/isBrowserVersion' ) ; < script src =" bugz.umd.js " > </ script >
< script >
const isBrowserName = Bugz . isBrowserName ;
</ script > require ( [ 'bugz' ] , bugz => { } ) ; Грань

Browesstack для предоставления бесплатной подписки на поддержку тестирования браузера Cross.