Este documento sigue los pasos del artículo: https://medium.com/@OneSignalDevs/web-push-notifications-are-a-versatile-channel-that-can-be-used-to-enhance-your-ux-re-engage-2d00c8bf1535
- Ve a https://documentation.onesignal.com/docs/web-push-sdk-setup
- Descarga el SDK de OneSignal para Web Push
- Descomprime el archivo
- Copia todos los archivos JavaScript de
OneSignal-Web-SDK/apublic/en tu proyecto
Archivos necesarios:
OneSignalSDK.js→public/OneSignalSDK.jsOneSignalSDKWorker.js→public/OneSignalSDKWorker.jsOneSignalSDKUpdaterWorker.js→public/OneSignalSDKUpdaterWorker.js
- Ve a https://onesignal.com y crea una cuenta (gratis)
- Crea una nueva aplicación seleccionando "Web Push"
- En la configuración:
- Selecciona "Custom Code" como método de integración
- Configura el Site URL (ej:
https://shoptrip.appohttp://localhost:3000para desarrollo) - Guarda la configuración
- Copia el
appIdque aparece en el segundo script de la página final
Agrega estas variables a tu archivo .env:
# OneSignal Configuration
NEXT_PUBLIC_ONESIGNAL_APP_ID=tu-app-id-aqui
ONESIGNAL_APP_ID=tu-app-id-aqui
ONESIGNAL_API_KEY=tu-api-key-aquiPara obtener las credenciales:
NEXT_PUBLIC_ONESIGNAL_APP_ID: Aparece en el script de inicialización del dashboardONESIGNAL_APP_ID: Mismo que arribaONESIGNAL_API_KEY: Ve a Settings → Keys & IDs → REST API Key
El código ya está implementado según el artículo:
- Script del SDK: Agregado en
src/app/layout.tsx - Inicialización: Implementada en
src/components/onesignal-registration.tsx - Service Worker: Configurado en
public/OneSignalSDKWorker.js
- Inicia el servidor de desarrollo:
npm run dev - Abre la app en tu navegador
- Deberías ver un botón circular rojo con una campana en la esquina inferior derecha
- Haz clic en el botón para suscribirte a las notificaciones
- Acepta los permisos cuando el navegador lo solicite
- Ve a Messages → New Push
- Crea tu mensaje
- Selecciona "Send to All Users" o segmenta por audiencia
- Envía la notificación
Las notificaciones se envían automáticamente cuando:
- Se crea un viaje (
notifyTripCreated) - Se crea un producto (
notifyItemCreated) - Se actualiza un viaje (
notifyTripUpdated) - Se marca un producto como comprado (
notifyItemPurchased)
- Ve a Audience → All Users
- Deberías ver tu suscripción después de aceptar los permisos
Deberías ver:
[OneSignal] Initialized
- Verifica que
OneSignalSDK.jsesté enpublic/ - Verifica que el script esté cargándose (DevTools → Network)
- Verifica que
NEXT_PUBLIC_ONESIGNAL_APP_IDesté configurado
- Verifica que hayas aceptado los permisos de notificaciones
- Verifica que estés suscrito (botón debe mostrar estado "subscribed")
- Verifica los logs del servidor al enviar notificaciones
- Verifica que el User ID esté registrado en la base de datos
- Verifica que
OneSignalSDKWorker.jsesté enpublic/ - Verifica que el archivo sea accesible en
https://tudominio.com/OneSignalSDKWorker.js