Progressive Web Application (PWA) в Angular реализуется через сочетание возможностей сервиса-воркера, кеширования ресурсов и адаптивного поведения приложения. PWA обеспечивает работу оффлайн, мгновенную загрузку и интеграцию с мобильными платформами без установки через App Store.
Angular предоставляет официальный пакет @angular/pwa,
который конфигурирует сервис-воркер и создаёт файл
manifest.webmanifest:
ng add @angular/pwa
После добавления пакета автоматически создаются:
ngsw-config.json — конфигурация сервис-воркера,
включающая стратегию кеширования и маршрутизацию.manifest.webmanifest — метаданные приложения: имя,
иконки, цветовая схема, поведение при установке.Сервис-воркер — скрипт, работающий в фоне браузера, перехватывающий сетевые запросы и предоставляющий закешированные ресурсы. Основные стратегии кеширования:
Пример конфигурации:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [ "/favicon.ico", "/index.html", "/*.css", "/*.js" ]
}
},
{
"name": "assets",
"installMode": "lazy",
"resources": {
"files": [ "/assets/**" ]
}
}
]
}
Файл manifest.webmanifest задаёт параметры установки PWA
на устройства:
{
"name": "Angular PWA",
"short_name": "NgPWA",
"theme_color": "#1976d2",
"background_color": "#ffffff",
"display": "standalone",
"icons": [
{
"src": "assets/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "assets/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
Angular PWA обеспечивает надежное и производительное веб-приложение, полностью интегрированное с современными веб-стандартами, сокращая задержки и повышая пользовательский опыт.