Прогрессивные веб-приложения (PWA) обеспечивают работу веб-приложений
в офлайн-режиме и возможность установки на устройство с использованием
стандартного механизма браузеров. Angular упрощает интеграцию PWA через
пакет @angular/pwa.
Для преобразования проекта в PWA используется Angular CLI:
ng add @angular/pwa
Команда автоматически выполняет несколько действий:
manifest.webmanifest с метаданными
приложения.index.html ссылкой на манифест и мета-теги
для мобильных устройств.Файл manifest.webmanifest содержит ключевые
параметры:
name и short_name — полное и сокращенное
имя приложения.icons — массив иконок с указанием размеров и
формата.start_url — URL, который откроется при запуске
приложения с устройства.display — режим отображения (standalone,
fullscreen, minimal-ui).theme_color и background_color — цветовая
схема приложения.Пример конфигурации:
{
"name": "Angular PWA App",
"short_name": "PWAApp",
"start_url": "/",
"display": "standalone",
"theme_color": "#1976d2",
"background_color": "#ffffff",
"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 использует Angular Service Worker для
автоматического кэширования статических ресурсов. Конфигурация находится
в файле ngsw-config.json, где задаются стратегии
кэширования:
performance — быстрый доступ из кэша, обновление на
фоне.freshness — приоритет обновленных данных с
сервера.Пример:
{
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
}
]
}
После развертывания PWA можно установить приложение на устройства:
Сервис-воркеры обеспечивают работу офлайн и загрузку ресурсов в фоне, поддерживая высокую производительность и доступность приложения.