Cela fait un moment que j'y pense, et je n'arrive pas à trouver un moyen d'y faire face. Existe-t-il un moyen de détecter si l'utilisateur utilise un clavier virtuel (logiciel) ou un clavier traditionnel (matériel) ?
La nouvelle Surface de Windows possède son propre clavier dans la housse, et pour Android / iPad, il existe une tonne de claviers Bluetooth différents.
Alors, est-ce que l'un d'entre vous a une idée à ce sujet ?
Je vise Android, IOS et Windows Tablet/Phone.
Motivation : (très subjectif)
Lors du développement d'applications web pour tablettes/smartphones, j'ai compris qu'il était plus facile - dans de nombreuses situations - d'utiliser un clavier JavaScript plutôt que le clavier logiciel du système d'exploitation.
Disons que vous voulez entrer un code PIN. Au lieu d'avoir un clavier remplissant la moitié de l'écran :
Clavier logiciel (OS) :
|----------------|
| [ input] |
| |
|----------------|
| 1 2 3 4 5 |
| 6 7 8 9 0 |
|----------------|
Clavier JavaScript :
|----------------|
| [ input] |
| | 1 2 3| |
| | 4 5 6| |
| |_7_8_9| |
| |
| |
|----------------|
Si vous avez besoin de gérer un grand nombre d'entrées, peut-être que vous voulez faire une superposition div
avec les entrées et utiliser le clavier du logiciel :
|----------------|
| P1 P2 P3 P4 |
| [inp 1][inp 2] |
|----------------|
| KEYBOARD |
| |
|----------------|
Mais si l'utilisateur dispose de son propre clavier matériel, nous voulons que l'édition se fasse en ligne sur place.
J'ai cherché autour de SO et j'ai trouvé ce post : Application Web pour iPad : Détecter le clavier virtuel en utilisant JavaScript dans Safari ? ... mais il semble que cela ne fonctionne que sur IOS - pas sûr pour le navigateur.