Cómo evitar que el teclado empuje hacia arriba la vista web en la aplicación iOS usando phonegap

Cuando un campo de entrada en la parte inferior de la pantalla tiene foco, el teclado empuja hacia arriba mi vista web y la parte superior de la página ya no está visible.

Quiero evitar que el teclado empuje hacia arriba la vista web.

Alguien tiene una idea ?

En foco, configure window.scrollTo (0,0); Esto evita que el teclado empuje hacia arriba la vista web por completo

$('input').on('focus', function(e) { e.preventDefault(); e.stopPropagation(); window.scrollTo(0,0); //the second 0 marks the Y scroll pos. Setting this to ie 100 will push the screen up by 100px. }); 

Si no desea establecer un valor estático para su posición de desplazamiento en Y, no dude en utilizar este breve complemento que he escrito que alinea automáticamente el teclado debajo del campo de entrada . No es perfecto, pero cumple su función. Simplemente llame a este en el enfoque como se muestra arriba:

 setKeyboardPos(e.target.id); 

Resolvió este problema usando driftyco / ionic-plugins-keyboard ( https://github.com/driftyco/ionic-plugins-keyboard )

Primer complemento de instalación del teclado:

 cordova plugin add com.ionic.keyboard 

Ahora puedes ) deshabilitar el desplazamiento del teclado nativo:

 cordova.plugins.Keyboard.disableScroll(true); 

o II) escuche en el evento native.keyboardshow en el deviceready y desplácese hacia atrás cuando el teclado muestre:

 window.addEventListener('native.keyboardshow', keyboardShowHandler); function keyboardShowHandler(e){ setTimeout(function() { $('html, body').animate({ scrollTop: 0 }, 1000); }, 0); } 

Usé el enfoque II) porque me gustó el desplazamiento animado en mi caso. Si no desea ir con la animación, reemplace la línea correspondiente con window.scrollTo(0, 0); . Pero me temo que en ese caso tendrá que lidiar de nuevo con esta “animación de fluctuación de la basura” sobre la que escribió Imskull .

Tuve el mismo problema y ninguna de las soluciones anteriores me ayudó, pero encontré una forma sencilla de superarlo.

En la plataforma / carpeta android, abra el archivo manifest.xml y en la etiqueta de actividad principal, reemplace el atributo android: windowSoftInputMode = “adjustResize” con android: windowSoftInputMode = “adjustPan”

ahora el teclado superpondrá su contenido.

Espero que ayude a alguien.

asegúrate de esto en tu config.xml

  

Literalmente fui a través de 100 respuestas antes de tener que encontrar la respuesta a mí mismo. así que aquí es cómo desactivar el desplazamiento de la IU en IOS. simplemente cuando se está cargando cordova, agregue esto. Por favor instalar:

 cordova plugin add ionic-plugin-keyboard --save 

y luego cordova prepare para cargar este nuevo plugin en su carpeta www.

 document.addEventListener('deviceready', function(e){ window.addEventListener('native.keyboardshow', function () { cordova.plugins.Keyboard.disableScroll(true); }); }); 

Y eso es. Por favor, avíseme si esto fue útil. Estaré encantado de responder más.