Estoy tratando de detectar si un usuario que visita mi aplicación web es un usuario móvil o no. He visto varias implementaciones ( ejemplo1 , ejemplo2 , ejemplo3 ) pero ninguna de ellas parece ser infalible o recomendada.
Nunca he visto a nadie mencionar verificar if (navigator.share) como un método para determinar si un usuario está en un dispositivo móvil o de escritorio. La declaración if distingue correctamente entre usuarios de escritorio y móviles en mi aplicación ( fuente ).
¿Puedo confiar en esto si se verifica la declaración? Si no, ¿cuáles son los inconvenientes de usar este enfoque?
(Nota: caniuse afirma que navigator.share solo tiene una cobertura del 87 %, pero ¿qué pasa si asumo que eso es "suficientemente bueno"?)
Microsoft Edge en Windows es compatible con Web Share API, por lo que definitivamente no es un buen método para distinguir a los usuarios de dispositivos móviles de los de escritorio. En los navegadores Chromium modernos, simplemente puede llamar a la siguiente API:
const isMobile = navigator.userAgentData.mobile;