¼ø¼
»ç¿ëÀÚ°¡ ±¸µ¶/Ãë¼Ò¸¦ ÇÒ ¼ö ÀÖµµ·Ï PushSubscription °´Ã¼·ÎºÎÅÍ unsubscribe() ÇÔ¼ö¸¦ ºÒ·¯ ¿É´Ï´Ù.
1. Ǫ½Ã ¼ºñ½º ±¸µ¶/Ãë¼Ò ¹öÆ° Ãß°¡
index.html¿¡ ¾Æ·¡ Äڵ带 Ãß°¡ ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <! DOCTYPE html> < html > < head > < title >Push Notification codelab</ title > < link rel = "manifest" href = "manifest.json" > </ head > < body > < h1 >Push Notification codelab</ h1 > < p >This page must be accessed using HTTPS or via localhost.</ p > < button disabled>Subscribe</ button > < script src = "js/main.js" ></ script > </ body > </ html > |
2. ±¸µ¶/Ãë¼Ò ÇÔ¼ö¸¦ main.js¿¡ Ãß°¡
main.jsÆÄÀÏÀ» ¾Æ·¡¿Í °°ÀÌ ¼öÁ¤ ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | var reg; var sub; var isSubscribed = false ; var subscribeButton = document.querySelector( 'button' ); if ( 'serviceWorker' in navigator) { console.log( 'Service Worker is supported' ); navigator.serviceWorker.register( 'sw.js' ).then( function () { return navigator.serviceWorker.ready; }).then( function (serviceWorkerRegistration) { reg = serviceWorkerRegistration; subscribeButton.disabled = false ; console.log( 'Service Worker is ready :^)' , reg); }). catch ( function (error) { console.log( 'Service Worker Error :^(' , error); }); } subscribeButton.addEventListener( 'click' , function () { if (isSubscribed) { unsubscribe(); } else { subscribe(); } }); function subscribe() { reg.pushManager.subscribe({userVisibleOnly: true }). then( function (pushSubscription){ sub = pushSubscription; console.log( 'Subscribed! Endpoint:' , sub.endpoint); subscribeButton.textContent = 'Unsubscribe' ; isSubscribed = true ; }); } function unsubscribe() { sub.unsubscribe().then( function (event) { subscribeButton.textContent = 'Subscribe' ; console.log( 'Unsubscribed!' , event); isSubscribed = false ; }). catch ( function (error) { console.log( 'Error unsubscribing' , error); subscribeButton.textContent = 'Subscribe' ; }); } |
ÀÌ ÄÚµå´Â ServiceWorkerRegistration °´Ã¤ regÀÇ °ªÀ» service worker°¡ ¼³Ä¡ µÉ¶§¿¡ ¼³Á¤ÇÏ°í subscribe() ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© Ǫ½Ã ¸Þ½ÃÁö¸¦ ±¸µ¶ÇÏ°Ô ÇÕ´Ï´Ù.
subscribe()ÇÔ¼ö´Â PushSubscription °´Ã¼ subÀ» »ý¼ºÇÏ°í ÀÌ´Â unsubscribe() ÇÔ¼ö¸¦ ÅëÇØ »ç¿ëµË´Ï´Ù.
ÁÖÀÇ: »ç¿ëÀÚ°¡ ±¸µ¶½Åû/Ãë¼Ò ÇÒ ¶§¿¡ ¸Å¹ø »õ·Î¿î registration ID¸¦ »ý¼ºÇϹǷΠGCM¿¡¼ ±×¿¡ ¸Â°Ô ´ëÀÀÇØ Áà¾ß ÇÕ´Ï´Ù.