我已经思考了一段时间,但无法想出解决方法。有没有办法检测用户使用虚拟(软件)键盘还是传统的(硬件)键盘?
新的Windows Surface在封面上有自己的键盘,对于Android/iPad,有大量不同的蓝牙键盘。
那么,你们有什么意见吗?
我的目标是针对Android、IOS和Windows平板电脑/手机。
动机:(非常主观)
在为平板电脑/智能手机开发Web应用程序时,我明白在许多情况下使用JavaScript键盘比使用操作系统的软件键盘更容易。
假设你想输入PIN码。而不是让键盘占据半个屏幕:
软件(操作系统)键盘:
|----------------|
| [ 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 |
| |
|----------------|
但是如果用户有自己的硬件键盘,我们希望直接在原地进行内联编辑。
我在Stack Overflow上找到了这篇文章:iPad Web App: Detect Virtual Keyboard Using JavaScript in Safari? ... 但是它似乎只在iOS上有效-不确定浏览器是否支持。