Detecção de agente de usuário composável usando Ramda , alimentado por ua-parser-js .
Porque os navegadores têm bugs de bugs.
O MDN oferece alguns bons conselhos sobre quando e quando não usar a detecção de agentes do usuário.
O Bugz não é realmente outra biblioteca, é apenas um invólucro funcional leve* em torno de ua-parser-js .
* Para aqueles que já usam Ramda.
$ npm install ramda
$ npm install bugz
Ramda é definido como uma dependência de colegas, o que significa que precisa ser definido em seu próprio pacote.json.
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' ) ;
} Outros exemplos podem ser encontrados aqui.
Todas as funções são curry por padrão.
Sobre (ua: string) → void
Registra todas as informações obtidas da sequência do agente do usuário para o console.
getBrowser (ua: string) → { name: string, version: string, majorVersion: number }
Retorna o navegador da sequência do agente do usuário.
GetBrowSerName (ua: string) → string
Retorna o nome do navegador da sequência do agente do usuário.
getBrowServersão (ua: string) → string
Retorna a versão do navegador da sequência do agente do usuário.
getEngine (ua: string) → { name: string, version: string }
Retorna o motor da sequência do agente do usuário.
GetengineName (ua: string) → string
Retorna o nome do motor da sequência do agente do usuário.
getEngineVersion (ua: string) → string
Retorna a versão do motor da sequência do agente do usuário.
getos (ua: string) → { name: string, version: string }
Retorna o sistema operacional da sequência do agente do usuário.
getosName (ua: string) → string
Retorna o nome do sistema operacional da sequência do agente do usuário.
Getosversão (ua: string) → string
Retorna a versão do sistema operacional da sequência do agente do usuário.
Isandroid (ua: string) → boolean
Retorna se o sistema operacional é ou não Android.
isandroidbrowser (ua: string) → boolean
Retorna se o navegador é ou não o navegador Android.
ISBROWSERNAME (name: string) → (ua: string) → boolean
Retorna se o nome do navegador é ou não name .
ISBROWSERVERSION (version: string) → (ua: string) → boolean
Retorna se a versão do navegador é ou não a version .
ISBROWSERVERSIONGT (version: string) → (ua: string) → boolean
Retorna se a versão do navegador é maior que version .
ISBROWSERVERSIONGTE (version: string) → (ua: string) → boolean
Retorna se a versão do navegador é maior ou igual à version .
ISBROWSERVERSIONLT (version: string) → (ua: string) → boolean
Retorna se a versão do navegador é menor que version .
ISBROWSERVERSIONLTE (version: string) → (ua: string) → boolean
Retorna se a versão do navegador é menor ou igual à version .
iscrome (ua: string) → boolean
Retorna se o navegador é ou não o Chrome.
ISEDDE (ua: string) → boolean
Retorna se o navegador está ou não.
ISEDEHTML (ua: string) → boolean
Retorna se o motor é ou não o Edgehtml.
isengineName (name: string) → (ua: string) → boolean
Retorna se o nome do motor é ou não o name .
isEngineVersion (version: string) → (ua: string) → boolean
Retorna se a versão do motor é ou não a version .
isengineversiongt (version: string) → (ua: string) → boolean
Retorna se a versão do motor é maior que version .
isEngineversionGTE (version: string) → (ua: string) → boolean
Retorna se a versão do motor é maior ou igual à version .
isengineversionlt (version: string) → (ua: string) → boolean
Retorna se a versão do motor é menor que version .
isengineversionlte (version: string) → (ua: string) → boolean
Retorna se a versão do motor é menor ou igual à version .
isfirefox (ua: string) → boolean
Retorna se o navegador é ou não o Firefox.
IsGecko (ua: string) → boolean
Retorna se o motor é ou não uma lagartixa.
ISIE (ua: string) → boolean
Retorna se o navegador é ou não o Internet Explorer.
Isiemobile (ua: string) → boolean
Retorna se o navegador é ou não o Internet Explorer Mobile.
ISIOS (ua: string) → boolean
Retorna se o sistema operacional é ou não iOS.
Ismacos (ua: string) → boolean
Retorna se o sistema operacional é ou não o Mac OS.
IsmobileSafari (ua: string) → boolean
Retorna se o navegador é ou não o Mobile Safari.
ISOSNAME (name: string) → (ua: string) → boolean
Retorna se o nome do sistema operacional é ou não o name .
ISOSVERSION (version: string) → (ua: string) → boolean
Retorna se a versão do sistema operacional é ou não version .
isosversiongt (version: string) → (ua: string) → boolean
Retorna se a versão do sistema operacional é maior que version .
isosversiongte (version: string) → (ua: string) → boolean
Retorna se a versão do sistema operacional é maior ou igual à version .
isosversionlt (version: string) → (ua: string) → boolean
Retorna se a versão do sistema operacional é menor que version .
isosversionlte (version: string) → (ua: string) → boolean
Retorna se a versão do sistema operacional é ou não menor ou igual à version .
ISOPERA (ua: string) → boolean
Retorna se o navegador é ou não ópera.
Isoperamobile (ua: string) → boolean
Retorna se o navegador é ou não Opera Mobile.
ISPRESTO (ua: string) → boolean
Retorna se o motor é ou não Presto.
Issafari (ua: string) → boolean
Retorna se o navegador é ou não Safari (Desktop).
ISTRIDENT (ua: string) → boolean
Retorna se o motor é ou não tridente.
Iswebkit (ua: string) → boolean
Retorna se o mecanismo é ou não o webkit.
ISWindows (ua: string) → boolean
Retorna se o sistema operacional é ou não o Windows.
iswindowsphone (ua: string) → boolean
Retorna se o sistema operacional é ou não o Windows Phone.
parse (ua: string) → { ua: string, browser: { name: string, version: string, majorVersion: string }, engine: { name: string, version: string }, os: { name: string, version: string }
Retorna todas as informações obtidas na sequência do agente do usuário.
import { isBrowserName } from 'bugz' ;Infelizmente, o tremor de árvores não é particularmente eficaz no bugz, porque a maioria das exportações é pura funções com curry que atualmente não são suscetíveis à eliminação do código morto. Portanto, uma compilação CommonJS modular é oferecida adicionalmente.
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 => { } ) ; Mit

Browserstack por fornecer uma assinatura gratuita para suportar testes de navegador cruzado.