Saltar al contenido

Detección de navegador en ReactJS

Si encuentras algún error con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes añadir el código al proyecto final.

Solución:

Está en el camino correcto, puede usarlos para renderizar jsx condicionalmente o ayudar con el enrutamiento …

He usado lo siguiente con gran éxito.

Originalmente de – ¿Cómo detectar los navegadores Safari, Chrome, IE, Firefox y Opera?

// Opera 8.0+
const isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

// Firefox 1.0+
const isFirefox = typeof InstallTrigger !== 'undefined';

// Safari 3.0+ "[object HTMLElementConstructor]" 
const isSafari = /constructor/i.test(window.HTMLElement) || (function (p)  return p.toString() === "[object SafariRemoteNotification]"; )(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));

// Internet Explorer 6-11
const isIE = /*@[email protected]*/false || !!document.documentMode;

// Edge 20+
const isEdge = !isIE && !!window.StyleMedia;

// Chrome 1 - 71
const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);

// Blink engine detection
const isBlink = (isChrome || isOpera) && !!window.CSS;

Tenga en cuenta que cada uno tiene la posibilidad de quedar obsoleto debido a cambios en el navegador.

Los uso en React así:

 content(props)
    if(!isChrome)
     return (
      
     )
    
    else  
     return (
      
     )
    
  

Luego llamando a this.Content() en mi componente principal para representar los diferentes elementos específicos del navegador.

El pseudocódigo podría verse así… (no probado):

import React from 'react';

const isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);

export default class Test extends React.Component 

  content()
    if(isChrome)
        return (
            
Chrome
) else return (
Not Chrome
) render() return (
Content to be seen on all browsers
this.content() )

No estoy seguro de por qué, pero nadie mencionó este paquete: react-device-detect El paquete tiene muchas verificaciones de navegadores, además de versiones y otra información relacionada. Es muy pequeño y está actualizado.

Puedes usar:

import  isIE  from 'react-device-detect';
isIE // returns true or false

react-device-detect también es un enlace de bundlephobia muy pequeño

Este es el servicio que siempre uso cuando hago detección de navegador basada en JS/Browser: http://is.js.org/

if (is.ie() || is.edge()) 
  window.location.href = 'http://example.com';

Reseñas y puntuaciones del tutorial

Al final de todo puedes encontrar las observaciones de otros usuarios, tú además puedes dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *