From 638e9bf50534614cc0e2112c4286a884d6e88045 Mon Sep 17 00:00:00 2001 From: 10G Meow <10gmeow@gmail.com> Date: Sun, 26 May 2024 16:56:36 +0300 Subject: [PATCH 1/2] periodicSync Notification text message update --- public/sw.js | 7 ++++++- src/App.vue | 2 +- src/assets/translations/en.json | 3 ++- src/plugins/notificationAndServiceWorker.js | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/public/sw.js b/public/sw.js index 6ea561a..4c2e264 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,3 +1,4 @@ +var periodicSyncNewMsgReminderText; // Notification click event listener self.addEventListener("notificationclick", (e) => { e.notification.close(); @@ -19,6 +20,10 @@ self.addEventListener("notificationclick", (e) => { ); }); +self.addEventListener("message", (event) => { + periodicSyncNewMsgReminderText = event.data || "You may have new messages" +}); + async function checkNewMessages() { const cachedCredentials = await caches.open('cachedCredentials'); // Todo... @@ -28,7 +33,7 @@ async function checkNewMessages() { // see browser compatibility: https://developer.mozilla.org/en-US/docs/Web/API/Web_Periodic_Background_Synchronization_API#browser_compatibility self.addEventListener('periodicsync', (event) => { if (event.tag === 'check-new-messages') { - self.registration.showNotification("Notification via periodicSync"); + self.registration.showNotification(periodicSyncNewMsgReminderText); event.waitUntil(checkNewMessages()); } diff --git a/src/App.vue b/src/App.vue index fde972f..32b5f2b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -49,7 +49,7 @@ export default { this.setDefaultLanguage(); }, mounted() { - registerServiceWorker(); + registerServiceWorker(this.$t('notification.periodicSync_new_msg_reminder')); /** if ( window.location.protocol == "http" && diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index 67baacf..73316b0 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -406,7 +406,8 @@ "enable": "Enable" }, "blocked_message": "Notification is blocked. Go to your device or browser settings to enable Notification", - "not_supported": "Notification is not yet supported in Mobile" + "not_supported": "Notification is not yet supported in Mobile", + "periodicSync_new_msg_reminder": "You may have new messages" }, "emoji": { "search": "Search...", diff --git a/src/plugins/notificationAndServiceWorker.js b/src/plugins/notificationAndServiceWorker.js index 0fdba82..13567c1 100644 --- a/src/plugins/notificationAndServiceWorker.js +++ b/src/plugins/notificationAndServiceWorker.js @@ -33,11 +33,12 @@ const registerPeriodicBackgroundSync = async (registration) => { } } -export function registerServiceWorker() { +export function registerServiceWorker(periodicSyncNewMsgReminderTxt) { if("serviceWorker" in navigator) { navigator.serviceWorker.register("./sw.js") .then(async registration => { console.log('Service Worker registered with scope:', registration.scope); + registration.active.postMessage(periodicSyncNewMsgReminderTxt); await registerPeriodicBackgroundSync(registration); }) .catch(error => { From c624d7e0983ca911a4d844a38fc874f1c7cb7fc0 Mon Sep 17 00:00:00 2001 From: 10G Meow <10gmeow@gmail.com> Date: Sun, 26 May 2024 21:51:24 +0300 Subject: [PATCH 2/2] fixes --- public/sw.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/public/sw.js b/public/sw.js index 4c2e264..51c9f2d 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,4 +1,5 @@ var periodicSyncNewMsgReminderText; + // Notification click event listener self.addEventListener("notificationclick", (e) => { e.notification.close(); @@ -21,7 +22,7 @@ self.addEventListener("notificationclick", (e) => { }); self.addEventListener("message", (event) => { - periodicSyncNewMsgReminderText = event.data || "You may have new messages" + periodicSyncNewMsgReminderText = event.data; }); async function checkNewMessages() { @@ -33,7 +34,8 @@ async function checkNewMessages() { // see browser compatibility: https://developer.mozilla.org/en-US/docs/Web/API/Web_Periodic_Background_Synchronization_API#browser_compatibility self.addEventListener('periodicsync', (event) => { if (event.tag === 'check-new-messages') { - self.registration.showNotification(periodicSyncNewMsgReminderText); + let notificationTitle = periodicSyncNewMsgReminderText || "You may have new messages"; + self.registration.showNotification(notificationTitle); event.waitUntil(checkNewMessages()); }