Cordova / Phonegap 3.1 clavier (toujours) superposés axés sur les champs de formulaire – iOS 7

Salut les gars, je viens de passer de Cordova 3.0 à 3.1 et j'ai encore un problème très inquiétant (ce qui existe quand je joue avec la préférence KeyboardShrinksView).

Chaque fois que je focalise un élément (entrée / zone de texte) qui déclenche l'ouverture du clavier, l'élément se cache derrière le clavier et je dois faire défiler vers le bas (en utilisant le Webkit-overflow-scrolling pour le défilement en passant) afin de voir l'élément Et son contenu.

Lorsque KeyboardShrinksView est défini sur true, la page ne défilera même pas, ce qui rendra encore pire.

Des solutions pour résoudre ce problème? J'ai rencontré quelques questions et des rapports de bogues, mais sans solutions de travail (ou solutions du tout).

Jouer avec la préférence "en plein écran" ne résoudra pas le problème.

Merci de votre aide

Il y avait un problème très similaire à cela. Certains des hacks trouvés sur ce site ont fonctionné, mais ont eu des effets secondaires méchants (par exemple, faire un désastre de défilement ou une mise en page CSS). Finalement, il y a eu un nouveau hack stupide.

Balise métabolique Viewport:

<meta name="viewport" content="initial-scale=1, maximum-scale=1, width=device-width" /> 

JavaScript parcouru après chargement:

 document.body.style.height = screen.availHeight + 'px'; 

Et c'est tout. Fonctionne sur iOS 7 et je ne sais pas pourquoi .

Enfin, réglé le problème à l'aide du plugin suivant: jQuery scrollTo plugin

Chaque fois que je me concentre sur un élément, je déclenche un événement de mise au point qui effectue les calculs suivants et met à jour la position de défilement:

 updateScroll: function(e){ var el = $(e.currentTarget); var offset = -$(".scrollerWrap").height() + $(el).height(); $(".scrollerWrap").scrollTo(el,{offset: offset}); } 

Ajoute le bas de la zone de saisie / texte au haut du clavier. Fonctionne comme un charme, même si la solution doit passer par ce bit de JavaScript.

Eh bien, logiquement, la vue devrait se déplacer lorsque le clavier s'ouvre. J'ai rencontré un problème similaire avec iOS7 et je l'ai corrigé. J'ai appliqué quelques ajustements css.

Les Tweaks ont été appliqués sur la classe wrapper / id qui contient le contenu de l'application.

 position: relative; overflow: hidden; height: 460px; width: 320px; 

Note – La hauteur et la largeur sont jugées dynamiquement en fonction de la hauteur et de l'largeur de l'appareil

 height = window.innerHeight width = window.innerWidth 

En utilisant les sélecteurs jQuery, la hauteur et la largeur sont ajoutées à la classe d'emballage / id.

Travaille pour moi.

 document.body.style.height = (screen.availHeight - 100) + 'px';