Solución:
Si bien los Service Workers ahora trabajan en Safari, no son suficientes.
La documentación dice:
La API de JavaScript de FCM le permite recibir mensajes de notificación en aplicaciones web que se ejecutan en navegadores que admiten la API de inserción. Esto incluye las versiones de navegador enumeradas en esta matriz de soporte.
Safari no es compatible con la inserción web, en la que FCM confía para la compatibilidad con el navegador. Eso significa que Safari no puede recibir notificaciones de FCM.
Safari todavía no es compatible con Web Push API, por lo tanto, el servicio Firebase Cloud Messaging.
A continuación, se muestran los navegadores compatibles con Firebase: https://firebase.google.com/support/guides/environments_js-sdk#browsers
Sugeriría usar .isSupported()
en lugar de otras soluciones.
if (firebase.messaging.isSupported())
const messaging = firebase.messaging();
}
Consulte la documentación para obtener detalles sobre .isSupported()
.
No estoy seguro de esta nueva situación de Safari y Service Workers, pero intenté implementar notificaciones push de FCM en mi aplicación iOS y tuve que experimentar que primero necesita un certificado APN (Apple-Push-Notification). No estoy seguro de si esto es necesario si está trabajando con Safari, pero me imagino que Apple también quiere que sus notificaciones push primero se redirijan a los servidores APN.