// public/service-worker.js self.addEventListener("push", (event) => { console.log(event) const data = event.data.json(); console.log(data); const options = { body: data.body, icon: data.icon, badge: data.badge, data: data.url }; event.waitUntil(self.registration.showNotification(data.title, options)); // console.log(data); }); self.addEventListener('notificationclick', function (event) { // console.log("Notification click event received."); // Сообщение об активации обработчика console.log("Notification data:", event.notification.data); // Проверка данных уведомления event.notification.close(); // Закрываем уведомление // console.log(event) const targetUrl = event.notification.data && event.notification.data ? event.notification.data : '/'; // console.log("Target URL to open:", targetUrl); // Выводим URL, который будет открыт event.waitUntil( clients.matchAll({type: 'window', includeUncontrolled: true}).then(clientList => { for (const client of clientList) { if (client.url === targetUrl && 'focus' in client) { // console.log("Focusing on existing client:", client.url); // Сообщение об активации уже открытого клиента return client.focus(); } } if (clients.openWindow) { // console.log("Opening new window:", targetUrl); // Сообщение об открытии нового окна return clients.openWindow(targetUrl); } }) ); });