From cfc92beec0b567fd977ebd6fef9632db223b0763fe89d42e7077035154d3411e Mon Sep 17 00:00:00 2001 From: AidarKC Date: Tue, 14 Apr 2026 21:51:16 +0300 Subject: [PATCH] =?UTF-8?q?14-04-2026=20=D0=A2=D0=BE=20=D1=87=D1=82=D0=BE?= =?UTF-8?q?=20=D0=B4=D0=B5=D0=BB=D0=B0=20=D0=B0=D0=B9=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=BE=20=D0=B2=D0=BE=20=D1=87=D1=82=D0=BE=20=D0=BD=D0=B0=D0=B4?= =?UTF-8?q?=D0=BE=20=D0=B2=D0=BB=D0=B8=D1=82=D1=8C=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BD=D0=B5=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shine-UI/firebase-messaging-sw.js | 31 ++++-- shine-UI/index.html | 2 +- shine-UI/js/app.js | 69 ++++++++++++- shine-UI/js/pages/app-log-view.js | 96 +++++++++++++++++++ shine-UI/js/pages/messages-list.js | 8 +- shine-UI/js/pages/settings-view.js | 2 + shine-UI/js/router.js | 3 +- shine-UI/js/services/pwa-push-service.js | 92 ++++++++++++++++-- shine-UI/js/state.js | 45 +++++++++ .../Net_SendDirectMessage_Handler.java | 8 +- .../ws_protocol/JSON/push/WebPushSender.java | 5 +- src/main/resources/application.properties | 4 +- 12 files changed, 333 insertions(+), 32 deletions(-) create mode 100644 shine-UI/js/pages/app-log-view.js diff --git a/shine-UI/firebase-messaging-sw.js b/shine-UI/firebase-messaging-sw.js index cf68f0a..ccec2c2 100644 --- a/shine-UI/firebase-messaging-sw.js +++ b/shine-UI/firebase-messaging-sw.js @@ -1,20 +1,39 @@ self.addEventListener('install', () => self.skipWaiting()); self.addEventListener('activate', (event) => event.waitUntil(self.clients.claim())); +async function broadcastToClients(payload) { + const clients = await self.clients.matchAll({ type: 'window', includeUncontrolled: true }); + clients.forEach((client) => { + client.postMessage({ + type: 'SHINE_WEB_PUSH_EVENT', + payload, + }); + }); +} + self.addEventListener('push', (event) => { let body = 'Новое сообщение SHiNE'; + let rawText = ''; try { if (event.data) { const text = event.data.text(); - body = text || body; + rawText = text || ''; + body = rawText || body; } } catch { // ignore } - event.waitUntil(self.registration.showNotification('SHiNE: входящее сообщение', { - body, - tag: 'shine-direct-message', - renotify: true, - })); + event.waitUntil(Promise.all([ + self.registration.showNotification('SHiNE: входящее сообщение', { + body, + tag: 'shine-direct-message', + renotify: true, + }), + broadcastToClients({ + body, + rawText, + receivedAt: Date.now(), + }), + ])); }); diff --git a/shine-UI/index.html b/shine-UI/index.html index e452966..84840d8 100644 --- a/shine-UI/index.html +++ b/shine-UI/index.html @@ -29,7 +29,7 @@