Vi que Discourse de alguna manera logró calcular la parte superior de la teclado virtual en iOS.
Esto es importante si quieres posicionar algo justo encima del teclado virtual, como este campo de entrada en el que estoy escribiendo ahora mismo.
Esto no es un problema en dispositivos con navegador Android, ya que los elementos con posición fija se empujan automáticamente hasta la parte superior del teclado visual cuando se hacen visibles.
He probado este mismo campo de entrada en un dispositivo con iOS 12.1 y, al parecer, Discourse logró replicar el comportamiento deseado incluso en versiones de Safari para iOS no compatibles.
¿Podría alguien indicarme el camino correcto para lograr el mismo resultado? Se lo agradecería mucho
Puedo imaginar que es una montaña de trucos. Llevo días dándole vueltas a esto, así que estoy listo y dispuesto a escalar esa montaña con gusto ..
Ya tuve que implementar un truco bastante sucio para evitar que Safari móvil levantara la barra fija superior al hacer clic en un campo de entrada. De hecho, creo que no será mucho peor que lo que tuve que hacer allí para lograrlo
El terrible truco consistía en sacar elementos de su posición fija cuando el área de texto ganaba el foco y ocultar todo en la página. Luego, volver a mostrarlo cuando el área de texto perdía el foco.
Era muy peculiar. Qué alegría que @pmusaraj haya presentado una implementación mucho más robusta.
Sin embargo, como se indica en ese archivo, pronto eliminaremos los parches para iOS 12. iOS 14 salió este año y solo alrededor del 5% de los dispositivos siguen en iOS 12.
He echado un vistazo rápido a tu solución alternativa; parece que optaste por codificar manualmente los tamaños de todos los posibles tamaños de teclado.
Sin embargo, cuando desactivan la sugerencia automática, el teclado cambia de tamaño. ¿Cómo lo maneja?
No sabía que el público que usa iOS 12 fuera tan bajo. ¿Estás seguro de que solo queda un 5% con iOS 12 o versiones anteriores? En ese caso, podría ser una pérdida de tiempo centrarse en ese problema en particular.
La solución funciona perfectamente cuando la sugerencia automática está activada… cuando se desactiva la sugerencia automática, nos queda un espacio en blanco… pero como ya mencionaste, la cantidad de usuarios que aún están atascados en iOS 12 es muy baja… Incluso mucho menor para los usuarios atascados en iOS 12 con la sugerencia automática desactivada.
Así que tu corrección es lo mejor que puedo imaginar. ¡Gracias por compartir!