我一直在考虑这个问题,但我想不出办法来处理它。有什么方法可以检测用户是使用虚拟(软件)键盘还是传统(硬件)键盘?
新的 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 - 不确定浏览器。