ÀÌ°÷¿¡¼ ´Ù·ïÁö´Â ³»¿ëÀÇ ¿Ï¼ºº»Àº ´Ù¿î·Îµå ¹ÞÀº Æú´õ ¾Æ·¡ À§Ä¡ÇÑcompleted/step3 Æú´õ¾È¿¡ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù.
³»¿ë
1. Index.html »ý¼º
appÆú´õ ¾È¿¡ index.htmlÆÄÀÏÀ» »ý¼ºÇÏ°í ¾Æ·¡ Äڵ带 Ãß°¡ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 | <! DOCTYPE html> < html > < head > < title >Push Notification codelab</ title > </ head > < body > < h1 >Push Notification codelab</ h1 > < p >This page must be accessed using HTTPS or via localhost.</ p > < script src = "js/main.js" ></ script > </ body > </ html > |
Å©·Ò ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÏ¿© index.htmlÀ» ·ÎÄÿ¡¼ µ¿ÀÛ½ÃÄÑ º¾´Ï´Ù. URLÀº http://localhost/push-notifications/app/index.html°ú °°Àº Çü½ÄÀ̾î¾ß ÇÕ´Ï´Ù.
2.Service Worker Ãß°¡
appÆú´õ ¾È¿¡ sw.jsÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù. ¾È¿¡ ³»¿ëÀº ³ªÁß¿¡ Ãß°¡Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
service worker¸¦ »ç¿ë Çغ» ÀûÀÌ ¾ø´Ù°í °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù. service worker¶õ ¹é±×¶ó¿îµå¿¡¼ ³×Æ®¿öÅ© ¿äûÀ» ±â´Ù¸®°í ÀÖ´Ù°¡ °¡·Îä°í, Ǫ½Ã ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â µîÀÇ ÀÛ¾÷À» ÇÏ´Â worker ½ºÅ©¸³Æ®¸¦ ¸»ÇÕ´Ï´Ù.
º¸´Ù ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¿øÇϽŴٸé HTML5 RocksÀÇ Introduction to Service Worker¸¦ ÂüÁ¶ÇϽʽÿÀ.
3.Service Worker µî·Ï & ¼³Ä¡
À̹ø¿¡´Â index.html¿¡¼ »ç¿ëµÇ´Â main.js ÀÚ¹Ù½ºÅ©¸³Æ® ÆÄÀÏÀ» »ý¼ºÇغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ÀÌ °ÍÀº service worker ½ºÅ©¸³Æ®¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. appÆú´õ ¾Æ·¡ jsÆú´õ¸¦ »ý¼ºÇÏ°í ±× ¾È¿¡ main.jsÆÄÀÏÀ» »ý¼ºÇÏ¿© ¾Æ·¡ Äڵ带 ÀÔ·ÂÇÕ´Ï´Ù.
1 2 3 4 5 6 7 8 9 | if ( 'serviceWorker' in navigator) { console.log( 'Service Worker is supported' ); navigator.serviceWorker.register( 'sw.js' ).then( function (reg) { console.log( ':^)' , reg); // TODO }). catch ( function (err) { console.log( ':^(' , err); }); } |
ÀÌ ÄÚµå´Â »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú°¡ service worker¸¦ Áö¿øÇÏ´ÂÁö¸¦ È®ÀÎÇÏ°í sw.js¿¡¼ ¸¸µé¾îÁø service worker¸¦ µî·ÏÇÏ°í ¼³Ä¡ÇÕ´Ï´Ù.
— ÇÏÁö¸¸ ¾ÆÁ÷±îÁö´Â ¾Æ¹«°Íµµ ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù.
4.localhost¿¡¼ µ¿ÀÛ
index.htmlÀ» localhost¿¡¼ ½ÇÇàÇÏ°í Å©·Ò °³¹ßÀÚ ÅøÀ» ÀÌ¿ëÇÏ¿© È®ÀÎÇÏ¸é ¾Æ·¡ ±×¸²°ú °°ÀÌ ³ªÅ¸³³´Ï´Ù.
5.serviceworker-internals Çغ¸±â
service workerµéÀÌ Àß µ¿ÀÛÇÏ°í ÀÖ´ÂÁö È®ÀÎ Çϱâ À§ÇØ Å©·Ò ºê¶ó¿ìÀúURL¿¡ chrome://serviceworker-internals¸¦ ÀÔ·ÂÇÏ¿© Áø´Ü ÆäÀÌÁö¸¦ ¿±´Ï´Ù.
6.Service Worker¿¡ À̺¥Æ® ¸®½º³Ê Ãß°¡
¾Æ·¡ Äڵ带 sw.js¿¡ Ãß°¡Çϼ¼¿ä.
1 2 3 4 5 6 7 8 9 10 11 12 | console.log( 'Started' , self); self.addEventListener( 'install' , function (event) { self.skipWaiting(); console.log( 'Installed' , event); }); self.addEventListener( 'activate' , function (event) { console.log( 'Activated' , event); }); self.addEventListener( 'push' , function (event) { console.log( 'Push message received' , event); // TODO }); |
service worker¿¡¼ self´Â ServiceWorkerGlobalScope ¿ÀºêÁ§Æ® servicer worker ÀÚ½ÅÀ» ¶æÇÕ´Ï´Ù.
À¯¿ëÇÑ ÆÁ!
±âº»¼³Á¤À¸·Î ÀÌÀü¿¡ ½ÇÇàµÈ service workerµéÀº ´Ý±â Àü±îÁö °è¼Ó ½ÇÇàµË´Ï´Ù. µû¶ó¼ »õ·Î »ý¼ºµÈ service worker´Â ´ë±â »óÅ°¡ µË´Ï´Ù.
ÇÏÁö¸¸ skipWaiting() ÇÔ¼ö°¡ ºÒ·¯Áö°Ô µÇ¸é(À§ÀÇ Äڵ忡 ÀÖ´Â ÇÔ¼ö) ´ë±â»óŸ¦ °Ç³Ê¶Ù°í ¹Ù·Î È°¼ºÈµË´Ï´Ù.
ÀÌ´Â µð¹ö±ë Çϱ⿡ Æí¸®ÇÕ´Ï´Ù.
chrome://serviceworker-internals ÆäÀÌÁö¿¡¼ inspect ¹öÆ°À» Ŭ¸¯ÇÏ¸é ´ÙÀ½°ú °°Àº ȸéÀÌ ³ªÅ¸³³´Ï´Ù.
ÁÖÀÇ»çÇ×: service worker Äڵ带 ÆĽÌÇϴµ¥ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù¸é service worker´Â ¼³Ä¡µÇÁö ¾Ê°í ¿¡·¯¸¦ ´øÁö°Ô µË´Ï´Ù.
ÀÌ·¸°Ô?À»¶§ service worker°¡ ¾÷µ¥ÀÌÆ® µÇÁö ¾Ê´Â ÈñÇÑÇÑ °æ¿ì°¡ ¹ß»ýÇÒ ¼ö°¡ ÀÖÀ¸¹Ç·Î Äڵ庯°æ½Ã Ç×»ó È®ÀÎÀ» ÇÏ¼Å¾ß ÇÕ´Ï´Ù.