Je suis en train d'écrire une application web pour l'iPad ( pas une application normale de l'App Store - il est écrit en utilisant HTML, CSS et JavaScript). Étant donné que le clavier occupe une grande partie de l'écran, il serait logique de modifier la mise en page de l'application pour l'adapter à l'espace restant lorsque le clavier est affiché. Cependant, je n'ai trouvé aucun moyen de détecter si le clavier est affiché ou non.
Ma première idée était de supposer que le clavier est visible lorsqu'un champ de texte a le focus. Cependant, lorsqu'un clavier externe est fixé à un iPad, le clavier virtuel ne s'affiche pas lorsqu'un champ de texte reçoit le focus.
Dans mes expériences, le clavier n'a pas non plus affecté la hauteur ou la hauteur de défilement d'aucun des éléments du DOM, et je n'ai trouvé aucun événement ou propriété propriétaire indiquant si le clavier est visible.
1 votes
Hm, problème intéressant. Essayez d'itérer sur les objets de "window" dans le Safari de l'iPad pour voir s'il y a des objets spéciaux liés au support du clavier.
0 votes
@David cela ne fonctionnera pas, le clavier n'est pas une "fenêtre" Javascript.
2 votes
@KennyTM. Duh. Mais il peut y avoir un drapeau lié à l'affichage du clavier à l'écran dans l'un des objets de la fenêtre. Cela vaut la peine d'essayer.
1 votes
J'ai essayé. Je n'ai rien trouvé, malheureusement. J'ai également comparé toutes les propriétés des fenêtres à trois niveaux de profondeur avant et après l'affichage du clavier. Aucune des différences ne semble pertinente en tant qu'indicateur du clavier.
3 votes
Existe-t-il une réponse plus récente à cette question ?