push.js (1224B)
1 window.doSubscribe = async function (applicationServerKey) { 2 const registration = await navigator.serviceWorker.register("./sw.js"); 3 const sub = await registration.pushManager.subscribe({ 4 applicationServerKey, 5 }); 6 return sub.toJSON(); 7 }; 8 9 window.doGetSubscription = async function () { 10 const registration = await navigator.serviceWorker.register("./sw.js"); 11 const sub = await registration.pushManager.getSubscription(); 12 if (sub) { 13 return sub.toJSON(); 14 } 15 16 return null; 17 }; 18 19 window.doUnsubscribe = async function () { 20 const registration = await navigator.serviceWorker.register("./sw.js"); 21 const sub = await registration.pushManager.getSubscription(); 22 sub.unsubscribe(); 23 return {}; 24 }; 25 26 window.doWaitForPushEvent = function () { 27 return new Promise(resolve => { 28 navigator.serviceWorker.addEventListener("message", function (e) { 29 if (e.data.type === "push") { 30 resolve(e.data.payload); 31 } 32 }); 33 }); 34 }; 35 36 window.doWaitForSubscriptionChange = function () { 37 return new Promise(resolve => { 38 navigator.serviceWorker.addEventListener("message", function (e) { 39 if (e.data.type === "pushsubscriptionchange") { 40 resolve(e.data.type); 41 } 42 }); 43 }); 44 };