Files
snStatus/frontend/public/sw-custom.js
2026-01-27 16:55:03 +09:00

51 lines
1.6 KiB
JavaScript

// Custom Service Worker for Push Notifications
self.addEventListener('push', function (event) {
console.log('[SW] Push event received:', event);
let notificationData = {
title: 'snStatus Alert',
body: 'System alert triggered',
icon: '/pwa-192x192.png',
badge: '/pwa-192x192.png',
vibrate: [200, 100, 200],
requireInteraction: true,
tag: 'snstatus-alert'
};
if (event.data) {
try {
const data = event.data.json();
console.log('[SW] Push data:', data);
notificationData.title = data.title || notificationData.title;
notificationData.body = data.body || notificationData.body;
notificationData.icon = data.icon || notificationData.icon;
} catch (e) {
console.error('[SW] Error parsing push data:', e);
notificationData.body = event.data.text();
}
}
const promiseChain = self.registration.showNotification(
notificationData.title,
{
body: notificationData.body,
icon: notificationData.icon,
badge: notificationData.badge,
vibrate: notificationData.vibrate,
requireInteraction: notificationData.requireInteraction,
tag: notificationData.tag
}
);
event.waitUntil(promiseChain);
});
self.addEventListener('notificationclick', function (event) {
console.log('[SW] Notification clicked');
event.notification.close();
event.waitUntil(
clients.openWindow('/')
);
});