From a66d83cb23ac3178043205d89ebe36025c111c1a Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Mon, 4 Feb 2019 16:47:15 +0100 Subject: [PATCH] - add: perimssion and Send Notification to a Service Worker... -> and finally to the App --- src-pwa/custom-service-worker.js | 71 +++++++++++++++ src/components/logo/logo.ts | 2 +- src/root/home/home.ts | 83 +++++++++++++++++- src/root/home/home.vue | 15 ++++ src/statics/i18n.js | 22 +++++ .../{ => images}/freeplanet-logo-full.svg | 0 src/statics/images/freeplanet.png | Bin 0 -> 40476 bytes src/statics/quasar-logo.png | Bin 7197 -> 0 bytes 8 files changed, 190 insertions(+), 3 deletions(-) rename src/statics/{ => images}/freeplanet-logo-full.svg (100%) create mode 100644 src/statics/images/freeplanet.png delete mode 100644 src/statics/quasar-logo.png diff --git a/src-pwa/custom-service-worker.js b/src-pwa/custom-service-worker.js index 34672c1..9d06f52 100644 --- a/src-pwa/custom-service-worker.js +++ b/src-pwa/custom-service-worker.js @@ -203,6 +203,12 @@ if (workbox) { ); + workbox.routing.registerRoute( + new RegExp('/admin/'), + workbox.strategies.networkOnly() + ); + + } if ('serviceWorker' in navigator) { @@ -211,6 +217,13 @@ if ('serviceWorker' in navigator) { } +self.addEventListener('fetch', (event) => { + if (event.request.url === '/') { + const staleWhileRevalidate = new workbox.strategies.StaleWhileRevalidate(); + event.respondWith(staleWhileRevalidate.handle({event})); + } +}); + // self.addEventListener('fetch', function (event) { // console.log('[Service Worker] Fetching something ....', event); // console.log('event.request.cache=', event.request.cache) @@ -330,3 +343,61 @@ self.addEventListener('sync', event => { event.waitUntil(fetch(url, options)) }) */ + +self.addEventListener('notificationclick', function(event) { + var notification = event.notification; + var action = event.action; + + console.log(notification); + + if (action === 'confirm') { + console.log('Confirm was chosen'); + notification.close(); + } else { + console.log(action); + event.waitUntil( + clients.matchAll() + .then(function(clis) { + var client = clis.find(function(c) { + return c.visibilityState === 'visible'; + }); + + if (client !== undefined) { + client.navigate(notification.data.url); + client.focus(); + } else { + clients.openWindow(notification.data.url); + } + notification.close(); + }) + ); + } +}); + +self.addEventListener('notificationclose', function(event) { + console.log('Notification was closed', event); +}); + +self.addEventListener('push', function(event) { + console.log('Push Notification received', event); + + var data = {title: 'New!', content: 'Something new happened!', openUrl: '/'}; + + if (event.data) { + data = JSON.parse(event.data.text()); + } + + var options = { + body: data.content, + icon: '/src/images/icons/app-icon-96x96.png', + badge: '/src/images/icons/app-icon-96x96.png', + data: { + url: data.openUrl + } + }; + + event.waitUntil( + self.registration.showNotification(data.title, options) + ); +}); + diff --git a/src/components/logo/logo.ts b/src/components/logo/logo.ts index 17f7d8c..5c43ec4 100644 --- a/src/components/logo/logo.ts +++ b/src/components/logo/logo.ts @@ -13,7 +13,7 @@ export default class Logo extends Vue { logoimg: string = '' created() { - this.logoimg = 'statics/' + process.env.LOGO_REG + this.logoimg = 'statics/images/' + process.env.LOGO_REG this.animate() } diff --git a/src/root/home/home.ts b/src/root/home/home.ts index 9666a70..ed7941e 100644 --- a/src/root/home/home.ts +++ b/src/root/home/home.ts @@ -43,8 +43,13 @@ export default class Home extends Vue { this.showNotification(String(my)) } - showNotification(msg: string) { - this.$q.notify(msg) + showNotification(message: string, color = 'primary', icon = '') { + this.$q.notify({ + color, + icon, + message + }) + } initprompt() { @@ -57,6 +62,80 @@ export default class Home extends Vue { } + getPermission () { + return Notification.permission + } + + displayConfirmNotification() { + let options = null + if ('serviceWorker' in navigator) { + options = { + body: 'You successfully subscribed to our Notification service!', + icon: '/src/images/icons/app-icon-96x96.png', + image: '/src/images/sf-boat.jpg', + dir: 'ltr', + lang: 'en-US', // BCP 47, + vibrate: [100, 50, 200], + badge: '/src/images/icons/app-icon-96x96.png', + tag: 'confirm-notification', + renotify: true, // if it's already sent, will Vibrate anyway + actions: [ + { action: 'confirm', title: 'Okay', icon: '/src/images/icons/app-icon-96x96.png' }, + { action: 'cancel', title: 'Cancel', icon: '/src/images/icons/app-icon-96x96.png' } + ] + } + + navigator.serviceWorker.ready + .then(function(swreg) { + swreg.showNotification('Successfully subscribed!', options) + }) + } + } + + showNotificationExample() { + let options = null + let mythis = this + if ('serviceWorker' in navigator) { + options = { + body: mythis.$t('notification.subscribed'), + icon: '/statics/icons/android-chrome-192x192.png', + image: '/statics/images/freeplanet.png', + dir: 'ltr', + lang: 'en-US', // BCP 47, + vibrate: [100, 50, 200], + badge: '/statics/icons/android-chrome-192x192.png', + tag: 'confirm-notification', + renotify: true, // if it's already sent, will Vibrate anyway + actions: [ + { action: 'confirm', title: mythis.$t('dialog.ok'), icon: '/statics/icons/android-chrome-192x192.png', } + // { action: 'cancel', title: 'Cancel', icon: '/statics/icons/android-chrome-192x192.png', } + ] + } + + navigator.serviceWorker.ready + .then(function(swreg) { + swreg.showNotification(mythis.$t('notification.title_subscribed'), options) + }) + } + } + + askfornotification () { + this.showNotification(this.$t('notification.waitingconfirm'), 'positive', 'notifications') + + let mythis = this + Notification.requestPermission(function(result) { + console.log('User Choice', result) + if (result === 'granted') { + mythis.showNotification(mythis.$t('notification.confirmed'), 'positive', 'notifications') + } else { + mythis.showNotification(mythis.$t('notification.denied'), 'negative', 'notifications') + + // displayConfirmNotification(); + } + }) + + } + test_fetch() { fetch('https:/httpbin.org/post', { method: 'POST', diff --git a/src/root/home/home.vue b/src/root/home/home.vue index e86d14a..04faefb 100644 --- a/src/root/home/home.vue +++ b/src/root/home/home.vue @@ -2,6 +2,21 @@ + + +
+
+ + Status: + + + +
+
diff --git a/src/statics/i18n.js b/src/statics/i18n.js index 2ec2a0b..5acd9d5 100644 --- a/src/statics/i18n.js +++ b/src/statics/i18n.js @@ -1,6 +1,7 @@ const messages = { it: { dialog: { + ok: 'Ok', yes: 'Si', no: 'No', delete: 'Elimina', @@ -103,10 +104,21 @@ const messages = { edit: 'Descrizione Task:', completed: 'Completati', usernotdefined: 'Attenzione, occorre essere Loggati per poter aggiungere un Todo' + }, + notification : { + ask: 'Attiva le Notifiche', + waitingconfirm: 'Conferma la richiesta di Notifica', + confirmed: 'Notifiche Attivate!', + denied: 'Notifiche Disabilitate! Attenzione così non vedrai arrivarti i messaggi. Riabilitali per vederli.', + titlegranted: 'Permesso Notifiche Abilitato!', + titledenied: 'Permesso Notifiche Disabilitato!', + title_subscribed: 'Sottoscrizione a FreePlanet.app!', + subscribed: 'Ora potrai ricevere i messaggi e le notifiche.' } }, enUk: { dialog: { + ok: 'Ok', yes: 'Yes', no: 'No', delete: 'Delete', @@ -209,6 +221,16 @@ const messages = { edit: 'Task Description:', completed: 'Completed', usernotdefined: 'Attention, you need to be Signed In to add a new Task' + }, + notification : { + ask: 'Enable Notification', + waitingconfirm: 'Confirm the Request Notification', + confirmed: 'Notifications Enabled!', + denied: 'Notifications Disabled! Attention, you will not see your messages incoming. Reenable it for see it', + titlegranted: 'Notification Permission Granted!', + titledenied: 'Notification Permission Denied!', + title_subscribed: 'Subscribed to FreePlanet.app!', + subscribed: 'You can now receive Notification and Messages.' } }, }; diff --git a/src/statics/freeplanet-logo-full.svg b/src/statics/images/freeplanet-logo-full.svg similarity index 100% rename from src/statics/freeplanet-logo-full.svg rename to src/statics/images/freeplanet-logo-full.svg diff --git a/src/statics/images/freeplanet.png b/src/statics/images/freeplanet.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e10dbbf6c395dc6195dc61bb6087c4f40d7a84 GIT binary patch literal 40476 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 literal 0 HcmV?d00001 diff --git a/src/statics/quasar-logo.png b/src/statics/quasar-logo.png deleted file mode 100644 index 590e8ce5b7ab465c0c3a23d01354b488c900af0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7197 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