He investigado un poco, y esta pregunta ha surgido, pero no de la manera que pretendo. Estoy creando una página para un cliente que es un aterrizaje de código QR, que es un lugar para descargar una aplicación. Para que no tenga que imprimir 2 códigos QR en una página, me gustaría detectar el sistema operativo actual (Apple / Android / Other [no compatible]) y modificar mis elementos en función de ese valor.
He examinado el script "detectmobrowbrowsers" y solo tiene como objetivo determinar si el usuario es móvil o no, mientras que me gustaría averiguar qué sistema operativo está ejecutando el usuario y sugerir la mejor versión de la aplicación.
Otras respuestas que encontré similares a esta pregunta parecían obsoletas o poco confiables (no tiene detección para los navegadores de tabletas Android), por lo que estoy buscando algo nuevo. ¿Cómo puedo conseguir esto? (Preferiblemente usando jQuery - Javascript - PHP en ese orden).
fuente
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
se devolverán verdaderos solo para los agentes de usuario de Android.Respuestas:
Puede probar la cadena del agente de usuario:
fuente
else if (userAgent.match(/Windows Phone/i)) { return 'WindowsPhone'; }
antes que el Android más para detectar Windows Phone. Hasta ahora parece estar funcionando bien.iOS
debemos verificar!window.MSStream
para evitar que IE11 se cuente comoiOS
;-)Solución 1: Detección de agentes de usuario
Para Android y iPhone:
Si desea detectar todos los dispositivos móviles, incluidos Blackberry y Windows Phone, puede utilizar esta versión completa:
Contras : las cadenas de agentes de usuario están cambiando y actualizándose a medida que nuevos teléfonos y marcas llegan día a día. Por lo tanto, debe mantener esta lista actualizada si desea admitir todos los dispositivos móviles.
Solución 2: biblioteca JS de detección móvil
Puede usar la biblioteca JS de detección móvil para hacer esto.
Contras : Estas funciones de detección de dispositivos basadas en JavaScript SOLO pueden funcionar para la última generación de teléfonos inteligentes, como los dispositivos iPhone, Android y Palm WebOS. Es posible que estas funciones de detección de dispositivos NO funcionen para teléfonos inteligentes más antiguos que tenían poca compatibilidad con JavaScript, incluidos los dispositivos BlackBerry, PalmOS y Windows Mobile más antiguos.
fuente
Se puede usar navigator.platform para obtener el sistema operativo en el que está instalado el navegador.
fuente
Este problema ya se ha resuelto aquí: ¿Cuál es la mejor manera de detectar un dispositivo móvil en jQuery?.
En la respuesta aceptada, básicamente prueban si es un iPhone, un iPod, un dispositivo Android o lo que sea que sea cierto. Solo mantén los que quieras por ejemplo
if( /Android/i.test(navigator.userAgent) ) { // some code.. }
se devolverán verdaderos solo para los agentes de usuario de Android.Sin embargo, los agentes de usuario no son realmente confiables ya que se pueden cambiar. Lo mejor es desarrollar algo universal para todas las plataformas móviles.
fuente
También puede lograr esto con el agente de usuario en php:
}
fuente
Si está utilizando React Js para su sitio web, use https://www.npmjs.com/package/react-device-detect
fuente
También puede crear enlaces dinámicos de Firbase que funcionarán según sus necesidades. Es compatible con múltiples plataformas. Este enlace se puede crear, tanto manualmente como a través de la programación. Luego puede incrustar este enlace en el código QR.
Si la aplicación de destino está instalada, el enlace redirigirá al usuario a la aplicación. Si no está instalado, redirigirá a Play Store / App store / Cualquier otro sitio web configurado.
fuente
Para este y otro tipo de detecciones de clientes, sugiero esta biblioteca js: http://hictech.github.io/navJs/tester/index.html
Para su respuesta específica use:
fuente
Usando el plugin cordova-device, puedes detectar
será "Android" para Android y "Windows" para Windows. Funciona en el dispositivo y al simular en el navegador. Aquí hay un brindis que mostrará los valores del dispositivo:
fuente