From 30c49550c89c1b69c680170d2dc247eac76bd463 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 16 Feb 2017 01:24:12 +0100 Subject: push plugin --- .../src/browser/ServiceWorker.js | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 StoneIsland/plugins/phonegap-plugin-push/src/browser/ServiceWorker.js (limited to 'StoneIsland/plugins/phonegap-plugin-push/src/browser/ServiceWorker.js') diff --git a/StoneIsland/plugins/phonegap-plugin-push/src/browser/ServiceWorker.js b/StoneIsland/plugins/phonegap-plugin-push/src/browser/ServiceWorker.js new file mode 100644 index 00000000..0fc06d09 --- /dev/null +++ b/StoneIsland/plugins/phonegap-plugin-push/src/browser/ServiceWorker.js @@ -0,0 +1,51 @@ +var messageChannel; + +self.addEventListener('install', function(event) { + self.skipWaiting(); +}); + +self.addEventListener('push', function(event) { + // parse incoming message + var obj = {}; + var pushData = { + image: 'https://avatars1.githubusercontent.com/u/60365?v=3&s=200', + additionalData: {} + }; + if (event.data) { + obj = event.data.json(); + } + + console.log(obj); + + // convert to push plugin API + for (var key in obj) { + if (key === 'title') { + pushData.title = obj[key]; + } else if (key === 'message' || key === 'body') { + pushData.message = obj[key]; + } else if (key === 'count' || key === 'msgcnt' || key === 'badge') { + pushData.count = obj[key]; + } else if (key === 'sound' || key === 'soundname') { + pushData.sound = obj[key]; + } else if (key === 'image') { + pushData.image = obj[key]; + } else { + pushData.additionalData[key] = obj[key]; + } + } + + event.waitUntil( + self.registration.showNotification(pushData.title, { + body: pushData.message, + icon: pushData.image, + tag: 'simple-push-demo-notification-tag' + }) + ); + + messageChannel.ports[0].postMessage(pushData); + +}); + +self.addEventListener('message', function(event) { + messageChannel = event; +}); -- cgit v1.2.3-70-g09d2