En un PWA codificado para Safari en iPadOS 14, estoy usando un oyente simple para mostrar una ventana emergente al hacer clic en un botón. Si bien esto funcionó bien, incluido iPadOS 14.6, el mismo código no está en iPadOS 15.0.
El "extremo táctil" del oyente hizo que la ventana emergente se mostrara solo durante un microsegundo y la cerrara nuevamente. La misma acción funciona bien cuando se usa solo el "clic" del oyente. Pero la acción "touchend" es mucho más intuitiva.
$('.popup').on('touchend click', function(e) { e.preventDefault(); $('#popup-content').toggleClass('d-flex d-none'); });Además, al tocar cualquier botón durante >0,5 s, se muestra una pequeña ventana vacía (la llamada). En iPadOS 14, este comportamiento podría evitarse con CSS simple:
-webkit-user-select: none; user-select: none; -webkit-touch-callout: none;¿Cómo evitar ambos comportamientos en el último iPadOS 15?
La solución simple que encontré es agregar un oyente "touchstart" con preventDefault() al mismo botón:
$('.popup').on('touchstart', function(e) { e.preventDefault(); });Ambas acciones se comportan igual que en iPadOS 14 nuevamente.