7 puntos por baeba 2025-05-13 | Aún no hay comentarios. | Compartir por WhatsApp

Resumen

Cuando se ofrecen funciones distintas según el navegador o el entorno del dispositivo, User-Agent Sniffing y Feature Detection son dos enfoques representativos.
Recientemente, se recomienda priorizar Feature Detection por motivos de mantenibilidad y seguridad.


1. User-Agent Sniffing

Es una forma de identificar el dispositivo o el navegador analizando la cadena de User-Agent.
Es útil para identificar el modelo del dispositivo, pero es sensible a las actualizaciones y su uso se está restringiendo gradualmente por el fortalecimiento de las políticas de privacidad.

navigator.userAgentData.getHighEntropyValues(['model', 'platform'])  

2. Feature Detection

Es una forma de ramificar condiciones comprobando si una función en sí está soportada.
Se puede aplicar de manera segura y flexible sin importar el tipo de navegador o dispositivo.

if ('fetch' in window) {  
  // usar la API fetch  
}  

3. Librerías: Modernizr & Sniffr

Modernizr es una librería que facilita el Feature Detection, y permite compilar incluyendo solo las funciones deseadas.
Sniffr es una librería que facilita el parseo de información basada en User-Agent.


4. Posibilidades de detección por plataforma

  • En Android se puede extraer incluso el nombre del modelo (SM-xxxx, etc.)
  • En iOS es posible distinguir entre iPhone/iPad, pero la identificación del modelo es limitada
  • En Mac/Windows se puede verificar hasta la versión del sistema operativo, pero es difícil identificar el dispositivo

5. Otra información detectable

  • Número de núcleos de CPU: navigator.hardwareConcurrency
  • Capacidad de memoria: navigator.deviceMemory
  • Velocidad de red: navigator.connection.effectiveType

6. Ejemplo de enfoque mixto

También es posible lograr una detección del entorno más precisa combinando User-Agent y Feature Detection.
Ejemplo: detectar modelos con notch, si tiene Apple Silicon y si hay soporte de funciones

environment.supportsServiceWorker = 'serviceWorker' in navigator;  

7. Prepararse para el futuro: Privacy Sandbox y User-Agent Reduction

Google está reduciendo la cadena de User-Agent y, como respuesta, se recomienda usar la User-Agent Client Hints API.
Esta API proporciona información del usuario de una forma más estructurada y respetuosa con la privacidad.

navigator.userAgentData.getHighEntropyValues(['platform', 'model']);  

Conclusión

  • Priorizar Feature Detection como enfoque base
  • Minimizar la detección basada en User-Agent y, cuando sea necesaria, aprovechar tecnologías modernas (API)
  • Conviene prepararse también para nuevos enfoques como Client Hints para adaptarse a los estándares futuros.

Aún no hay comentarios.

Aún no hay comentarios.