Android 检测移动设备屏幕键盘上是否有按键

Android 检测移动设备屏幕键盘上是否有按键,android,ios,firefox,keyboard,touchscreen,Android,Ios,Firefox,Keyboard,Touchscreen,我正在为我们的网站添加一些移动可用性优化。作为这项工作的一部分,我正在调整textfields的type属性,为用户提供用于预期数据类型的最佳输入工具 我在触摸屏移动设备中遇到的一个问题是,当使用input type=“number”时,不同操作系统上的浏览器,甚至同一操作系统上的不同浏览器,在屏幕上显示不同的键盘 iOS 4.3.3(iPhone 4)上的Safari和安卓2.3.4上的Chrome都包含小数点,但安卓2.3.4上的Firefox没有 我尝试添加step属性(step=“0.1

我正在为我们的网站添加一些移动可用性优化。作为这项工作的一部分,我正在调整textfields的type属性,为用户提供用于预期数据类型的最佳输入工具

我在触摸屏移动设备中遇到的一个问题是,当使用input type=“number”时,不同操作系统上的浏览器,甚至同一操作系统上的不同浏览器,在屏幕上显示不同的键盘

iOS 4.3.3(iPhone 4)上的Safari和安卓2.3.4上的Chrome都包含小数点,但安卓2.3.4上的Firefox没有

我尝试添加step属性(step=“0.1”),但Firefox中没有任何改进

如果我不能显示小数点,我将需要向Firefox显示完整的QWERTY键盘,这显然不会带来最佳的用户体验。它还提出了浏览器/设备嗅探的问题。要么我需要将QWERTY设置为默认值,并向我可以实际测试的少数设备显示numberpad,要么将numberpad设置为默认值,并在我知道这会中断的设备上切换回QWERTY,后一个选项的健壮性要差得多,因为我无法在所有已制作的设备上进行测试

测试是否支持输入type=“number”并不是一个解决方案,因为很明显浏览器确实支持该元素,它只是没有提供足够的键盘选项来输入所有的数字类型

所以。。我想知道是否有人知道一种方法来测试浏览器/操作系统分配给输入类型的键盘中是否存在某个键(如小数点),和/或是否有其他人有更好的建议,因为我对移动设备非常陌生

我还应该提到,我在这里使用的是JavaScript,因为这是一个网站,而不是本地应用程序


谢谢:)

不幸的是,firefox不支持数字输入类型。但是,您仍然可以尝试使用这些附加的HTML属性,使输入字段提示用户输入数字

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

input type=“tel”
对你有用吗?至少在安卓系统上,甚至不要求有钥匙。输入法可以使用其他形式,例如使用手势的Grafiti2。本机Android应用程序无法确定用户当前的输入法是否显示某些键,更不用说浏览器了。
模式
不受Safari支持。