рд╣рдо рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдХрд╕реНрдЯрдо рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдгреАрдп NGSW рдкрдВрдк рдХрд░рддреЗ рд╣реИрдВ

рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ (PWA) рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рдкреАрдбрдмреНрд▓реНрдпреВрдП рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдгреАрдп рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЬрд▓реНрджреА рд╕реЗ PWA рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рд╡рд░реНрдХрд░ 1.7.0 рдХреЗ рдмрд╛рдж рд╕реЗ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ json рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдгреАрдп рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдЦрд╛рдореА рд╣реИ - рдЗрд╕рдХрд╛ рддрд░реНрдХ рдПрдХ рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдкрдХреЛ NGSW рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ?


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдХрд╕реНрдЯрдо рдХреНрд▓рд┐рдХ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдПрдХ рдкреБрд╢ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреА рдХреНрд▓рд┐рдХ рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдгреАрдп рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреА рдУрд░ рд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЗ ngsw-worker.js рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрди рдПрдирдХрд╛рдЙрдВрдЯрд░-рд╡рд░реНрдХрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рддрд░реАрдХрд╛ рдЦрд░рд╛рдм рд╣реИ - рдЗрд╕реЗ рдПрдирдХреЙрдЙрдиреНрд╕реН рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рд╕рдорд░реНрдерди рдФрд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдирд┐рд░реНрдгрдп


рдЪрд▓рд┐рдП / src рдлреЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд js рдлрд╛рдЗрд▓ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

sw-custom.js - рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓:

(function () { 'use strict'; self.addEventListener('notificationclick', (event) => { event.notification.close(); console.log('notification details: ', event.notification); }); }()); 

sw-master.js рдПрдХ рдРрд╕реА рдлрд╛рдЗрд▓ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рддрд░реНрдХ рдХреЗ рд╕рд╛рде NGSW рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ:

 importScripts('./ngsw-worker.js'); importScripts('./sw-custom.js'); 

рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг


рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдХрд░, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдгреАрдп рдЙрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗред рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпреЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╕рдордп рдХреЛрдгреАрдп рд╕реАрдПрд▓рдЖрдИ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ favicon.ico рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдорд╛рди рд╕рдВрдкрддреНрддрд┐ рд╣реИрдВред рд╣рдо рдХреЛрдгреАрдп.рдЬрд╕рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ((рдХреЛрдгреАрдп-cli.json рдХреЛ рдХреЛрдгреАрдп рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП):

 { ..., "assets": [ "src/favicon.ico", "src/assets", "src/manifest.json", "src/sw-master.js", "src/sw-reminders.js" ], ... } 

рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд┐рд░ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ


рдЕрдВрддрд┐рдо рдЪрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдХреЛрдгреАрдп рджреНрд╡рд╛рд░рд╛ рдкрдВрдЬреАрдХреГрдд рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ ServiceWorkerModule.register рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ app.module.ts рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

 ServiceWorkerModule.register('/sw-master.js', { enabled: environment.production }) 

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛


рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░реЛрдбрдХреНрд╢рди рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реА рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА / рдбрд┐рд╕реНрдЯрд▓ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд░реНрд╡рд┐рд╕рд╡реЗрдпрд░ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╕рдордп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореЗрд░реА GitHub рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкрд░ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рд▓реЙрдЬрд┐рдХ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рд┐рдд ServiceWorker рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдгреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/hi435718/


All Articles