Я думал об этом сейчас, и я не могу понять, как справиться с этим. Есть ли способ определить, использует ли пользователь виртуальную (программную) клавиатуру или традиционную (аппаратную) клавиатуру?
У новой Windows-поверхности есть своя клавиатура в обложке, а для Android/iPad есть тонна различных клавиатур bluetooth.
Итак, есть ли у кого-нибудь из вас какие-либо сведения об этом?
Я нацелен на Android, IOS и Windows Tablet/Phone.
Мотивация: (очень субъективная)
При разработке веб-приложений для планшетов/смартфонов я пришел к пониманию того, что во многих ситуациях проще использовать клавиатуру 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 |
| |
|----------------|
Но если у пользователя есть собственная аппаратная клавиатура, мы хотим сделать встроенную строку редактирования.
Я искал SO и нашел этот пост: iPad Web App: обнаружение виртуальной клавиатуры с использованием JavaScript в Safari?... но этот шов работает только в IOS - не уверен в браузере.