forked from jsnbuchanan/crowd-funder-for-time-pwa
Added messaging to service worker. Restarting integration procss
This commit is contained in:
11
src/App.vue
11
src/App.vue
@@ -279,6 +279,17 @@ export default class App extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private askPermission(): Promise<NotificationPermission> {
|
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
|
// Check if Notifications are supported
|
||||||
if (!("Notification" in window)) {
|
if (!("Notification" in window)) {
|
||||||
alert("This browser does not support notifications.");
|
alert("This browser does not support notifications.");
|
||||||
|
|||||||
@@ -1,33 +1,31 @@
|
|||||||
const notifications = require("./safari-notifications.js");
|
importScripts("./safari-notifications.js");
|
||||||
|
|
||||||
|
|
||||||
self.addEventListener("push", function (event) {
|
self.addEventListener("push", function (event) {
|
||||||
|
event.waitUntil((async () => {
|
||||||
|
try {
|
||||||
let payload;
|
let payload;
|
||||||
if (event.data) {
|
if (event.data) {
|
||||||
payload = JSON.parse(event.data.text());
|
payload = JSON.parse(event.data.text());
|
||||||
}
|
}
|
||||||
|
let value = await self.getNotificationCount();
|
||||||
const title = payload ? payload.title : "Custom Title";
|
const title = payload ? payload.title : "Custom Title";
|
||||||
const options = {
|
const options = {
|
||||||
body: payload ? payload.body : "Custom body text",
|
body: payload ? value : "SAMPLE",
|
||||||
icon: payload ? payload.icon : "icon.png",
|
icon: payload ? payload.icon : "icon.png",
|
||||||
badge: payload ? payload.badge : "badge.png",
|
badge: payload ? payload.badge : "badge.png",
|
||||||
};
|
};
|
||||||
|
await self.registration.showNotification(title, options);
|
||||||
event.waitUntil(self.registration.showNotification(title, options));
|
} catch (error) {
|
||||||
|
console.error('Error in processing the push event:', error);
|
||||||
|
}
|
||||||
|
})());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
self.addEventListener("message", function (event) {
|
self.addEventListener('message', event => {
|
||||||
const data = event.data;
|
if (event.data && event.data.type === 'SEND_LOCAL_DATA') {
|
||||||
|
self.secret = event.data.data;
|
||||||
const result = notifications.getNotificationCount()
|
console.log('Data stored in service worker:', self.secret);
|
||||||
|
|
||||||
switch (data.command) {
|
|
||||||
case "account":
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
console.log("Unknown command:", data.command);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user