La ventana emergente de acceso a la ubicación de la PWA de iOS no se muestra.
He construido una PWA que llama a la API de JavaScript navigator.geolocation.getCurrentPosition
, que solicita el acceso a la ubicación al usuario cuando se establece el permiso de Safari en “Preguntar”.
Este es el comportamiento correcto y funciona como se espera cuando se abre en Safari.
Sin embargo, cuando se agrega a la pantalla de inicio y se ejecuta en modo de visualización “standalone”, la alerta de ubicación no se abre en mi teléfono (iPhone 13 mini / iOS 15.1.1). Y la llamada nunca falla.
Luego, si cambio de la PWA a Safari, la alerta de ubicación / solicitud aparece repentinamente en Safari. Así que parece que la alerta apunta al “tab” equivocado.
Esto no ocurre si el modo de visualización de la PWA es “navegador” o “minimal-ui”; en ambos casos se comporta normalmente.
Solo puedo replicar esto en mi teléfono (iPhone 13 mini / iOS 15.1.1). También lo he probado en varios teléfonos más antiguos (15.1.1 y 14.7), así como en varios emuladores, y todos se comportan como se espera.
Es posible que esta sea una configuración oscura en mi teléfono, pero parece muy mala como un error de iOS Safari.
davy.ai
Problema con el acceso a ubicación de PWA en iPhone con iOS 15.1.1
Descripción del problema
Se construyó una PWA con una API de javascript
navigator.geolocation.getCurrentPosition
utilizada para solicitar al usuario el acceso a la ubicación. Cuando la autorización de Safari se configuró en “Preguntar”, la PWA funcionó como se esperaba al abrirse en Safari. Sin embargo, al agregarla a la pantalla de inicio y ejecutarla en modo “autónomo”, el mensaje de solicitud de ubicación no apareció y la llamada nunca se agotó. Al cambiar a Safari, el mensaje de solicitud se mostró repentinamente, lo que indica que la alerta estaba dirigida a la pestaña equivocada. Este comportamiento no se observó en los modos de visualización “navegador” o “minimal-ui”.Entorno de pruebas
El problema solo se pudo replicar en un iPhone 13 mini con iOS 15.1.1. Otros teléfonos más antiguos y emuladores se comportaron según lo esperado.
Posible causa
Se sospecha que el problema es un error de Safari en iOS, ya que no se puede reproducir en otros dispositivos y emuladores.
Recomendación
Como solución temporal, implemente un mecanismo de respaldo para proporcionar una ubicación predeterminada o pedir al usuario que ingrese su ubicación manualmente. Alternativamente, utilice un modo de visualización diferente hasta que se resuelva el problema.
A largo plazo, monitoree los foros de desarrolladores de Apple para ver si hay actualizaciones o soluciones.