Detectar si las teclas están disponibles en el teclado en pantalla del dispositivo móvil

Estoy agregando algunas optimizaciones de usabilidad para móviles a nuestro sitio. Como parte de esto estoy modificando el atributo de tipo de textfields, para dar al usuario las mejores herramientas de entrada para el tipo de datos esperado.

Un problema que he encontrado en los dispositivos móviles con pantalla táctil es que los navegadores en diferentes sistemas operativos, e incluso diferentes navegadores en el mismo sistema operativo, muestran diferentes teclados en pantalla cuando se utiliza el tipo de entrada = "número".

Safari en iOS 4.3.3 (iPhone 4) y Chrome en Android 2.3.4 incluyen un punto decimal, pero Firefox en Android 2.3.4 no lo hace.

He intentado agregar el atributo del paso (paso = "0.1") sin la mejora en Firefox.

Si no puedo mostrar el punto decimal necesitaré mostrar a Firefox el teclado QWERTY completo, lo que obviamente no va a hacer para la mejor experiencia de usuario. También plantea el problema de la inhalación de navegador / dispositivo. O necesitaré hacer el QWERTY el defecto, y demostrar el numberpad al puñado de dispositivos que puedo probar realmente encendido, o hacer el numberpad el defecto, y cambiar de nuevo a QWERTY en los dispositivos que sé que esto se romperá encendido, la última opción Siendo mucho menos robusto, ya que no puedo probar en todos los dispositivos que se hayan hecho.

Prueba de la ayuda para la entrada tipo = "número" no es una solución, como obviamente el navegador no soporta el elemento, simplemente no ofrece suficientes opciones de teclado para introducir todos los tipos de números.

Así que .. Me preguntaba si alguien sabía de una manera de probar la presencia de una determinada clave (como el punto decimal) en el teclado que el navegador / OS asigna al tipo de entrada, y / o si alguien tiene algo mejor Sugerencias, ya que soy bastante nuevo en dispositivos móviles.

También debo mencionar que estoy usando JavaScript aquí, ya que es un sitio web, no una aplicación nativa.

Gracias 🙂

    Desafortunadamente, firefox no admite el tipo de entrada numérica. Sin embargo, todavía puede intentar utilizar estos atributos HTML adicionales para hacer que un campo de entrada solicite al usuario una entrada numérica

     inputmode='numeric' pattern='[0-9]*' //this makes it show only the numbers 0-9 without all the slashes and dashes and everything. Ignore this if that's not what you want 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.