【发布时间】:2012-10-27 13:32:49
【问题描述】:
我一直在考虑这个问题,但我想不出办法来处理它。有什么方法可以检测用户是使用虚拟(软件)键盘还是传统(硬件)键盘?
新的 Windows Surface 的封面有自己的键盘,对于 Android / iPad 有大量不同的蓝牙键盘。
那么,你们中的任何人对此有什么意见吗?
我的目标是 Android、IOS 和 Windows 平板电脑/手机。
动机:(非常主观)
在为平板电脑/智能手机开发 Web 应用程序时,我了解到在许多情况下使用 JavaScript 键盘而不是操作系统的软件键盘更容易。
假设您要输入 PIN 码。而不是让键盘占据屏幕的一半:
软件 (OS) 键盘:
|----------------|
| [ input] |
| |
|----------------|
| 1 2 3 4 5 |
| 6 7 8 9 0 |
|----------------|
JavaScript 键盘:
|----------------|
| [ input] |
| | 1 2 3| |
| | 4 5 6| |
| |_7_8_9| |
| |
| |
|----------------|
如果您需要处理大量输入,也许您想用输入覆盖div 并使用软件键盘:
|----------------|
| P1 P2 P3 P4 |
| [inp 1][inp 2] |
|----------------|
| KEYBOARD |
| |
|----------------|
但如果用户有自己的硬件键盘,我们希望在适当的位置进行内联编辑。
我一直在寻找这个帖子,发现了这个帖子:iPad Web App: Detect Virtual Keyboard Using JavaScript in Safari? ...但是这个接缝只适用于 IOS - 不确定浏览器。
【问题讨论】:
-
也许这个帖子可以帮到你stackoverflow.com/questions/2593139/…
-
我能问为什么这很重要吗?只是好奇为什么。
-
就我个人而言,我会采取不同的方法 - 对于您提供的示例用例,我会阻止输入上的焦点事件并始终显示 JS 键盘,同时监听键盘事件以捕获数字键按下。这意味着在移动设备上不应显示虚拟键盘,而在 PC 和其他带有硬件键盘的设备上,用户仍然可以使用它来输入数字。
-
反歧视法的合规性如何?这个系统可以通过听写、鼠标移动或眼动仪来处理输入吗?
-
我真的不认为你应该这样做。软件键盘是任何触摸屏界面的最基本元素之一——用户了解它的工作原理,并且它紧密集成到操作系统的辅助功能中。无论您做得如何,您都不会得到比现有软件键盘更直观、更易于在所有平台上使用的键盘。
标签: javascript jquery keyboard virtual tablet