ServiceWorker registration fails in Facebook/Instagram in-app browser on iOS
- Lenguaje dominante
- TypeScript
- Estrellas
- 7.8k
- Forks
- 2.2k
- Merge medio
- 22 h 28 min
- PR fusionados (30 d)
- 6
Descripción
When using the Firebase Messaging service with Angular 19.1.4 in the Facebook/Instagram in-app browser on iOS devices, the following error occurs:
```typescript
TypeError: undefined is not an object (evaluating 'navigator.serviceWorker.addEventListener')
```
### Environment
- **Platform**: iOS
- **Browser**: Facebook/Instagram in-app browser
- **Framework**: Angular 19.1.4
- **Dependencies**:
- @angular/core: 19.1.4
- @angular/common: 19.1.4
- @angular/platform-browser: 19.1.4
- **Service**: Firebase Cloud Messaging
### Technical Details
The error occurs during the messaging service initialization when attempting to add an event listener to the ServiceWorker. The specific line causing the issue is:
```typescript
navigator.serviceWorker.addEventListener('message', e => messageEventListener(messaging as MessagingService, e));
```
### Root Cause
The Facebook/Instagram in-app browser on iOS does not support or properly expose the ServiceWorker API, causing `navigator.serviceWorker` to be undefined. This issue persists even with the latest Angular 19 framework.
### Impact
- Firebase Cloud Messaging service initialization fails
- Push notifications cannot be registered or received
- Affects only users accessing the Angular 19 application through Facebook/Instagram in-app browser on iOS devices
Guía de contribución
Línea de trabajo
Comienza con la llamada de inicialización de messaging-service mostrada en el issue y reprodúcela en el navegador integrado en la aplicación iOS de Facebook/Instagram. Rastrea cómo se accede a navigator.serviceWorker; se considera terminado cuando la inicialización ya no produce errores si la API no está disponible y el comportamiento de push se ha verificado donde sea compatible.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- angular, firebase, typescript
- Área
- frontend
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100