Added messaging to service worker. Restarting integration procss

This commit is contained in:
Matthew Raymer
2023-11-11 04:40:45 -05:00
parent c344d37bd9
commit 805c7b4810
3 changed files with 55 additions and 5179 deletions

View File

@@ -279,6 +279,17 @@ export default class App extends Vue {
}
private askPermission(): Promise<NotificationPermission> {
if ("serviceWorker" in navigator && navigator.serviceWorker.controller) {
const secret = localStorage.getItem("secret");
if (secret) {
navigator.serviceWorker.controller.postMessage({
type: "SEND_LOCAL_DATA",
data: secret,
});
}
}
// Check if Notifications are supported
if (!("Notification" in window)) {
alert("This browser does not support notifications.");

View File

@@ -1,33 +1,31 @@
const notifications = require("./safari-notifications.js");
importScripts("./safari-notifications.js");
self.addEventListener("push", function (event) {
let payload;
if (event.data) {
payload = JSON.parse(event.data.text());
}
const title = payload ? payload.title : "Custom Title";
const options = {
body: payload ? payload.body : "Custom body text",
icon: payload ? payload.icon : "icon.png",
badge: payload ? payload.badge : "badge.png",
};
event.waitUntil(self.registration.showNotification(title, options));
event.waitUntil((async () => {
try {
let payload;
if (event.data) {
payload = JSON.parse(event.data.text());
}
let value = await self.getNotificationCount();
const title = payload ? payload.title : "Custom Title";
const options = {
body: payload ? value : "SAMPLE",
icon: payload ? payload.icon : "icon.png",
badge: payload ? payload.badge : "badge.png",
};
await self.registration.showNotification(title, options);
} catch (error) {
console.error('Error in processing the push event:', error);
}
})());
});
self.addEventListener("message", function (event) {
const data = event.data;
const result = notifications.getNotificationCount()
switch (data.command) {
case "account":
break;
default:
console.log("Unknown command:", data.command);
self.addEventListener('message', event => {
if (event.data && event.data.type === 'SEND_LOCAL_DATA') {
self.secret = event.data.data;
console.log('Data stored in service worker:', self.secret);
}
});

File diff suppressed because it is too large Load Diff