manifest_web
manifest_web – to plik konfiguracyjny wykorzystywany w aplikacjach internetowych, zwłaszcza w tzw. Progressive Web Apps (PWA), służący do określenia, jak aplikacja powinna zachowywać się po zainstalowaniu na urządzeniu użytkownika. Plik ten jest zazwyczaj zapisywany w formacie JSON i umieszczany w katalogu głównym serwisu, a jego obecność jest zgłaszana w dokumencie HTML przy pomocy atrybutu manifest w elemencie <link>.
Historia
Pierwsze koncepcje manifestu aplikacji webowych pojawiły się pod koniec 2014 roku, kiedy to W3C oraz twórcy przeglądarek zaczęli pracować nad ujednoliceniem sposobu instalacji aplikacji internetowych. W 2015 roku specyfikacja Web App Manifest została opublikowana jako Recommendation, a od tego momentu manifest stał się standardem w nowoczesnych przeglądarkach.
Zawartość manifestu
Typowy plik manifest.json zawiera szereg kluczowych pól:
name– pełna nazwa aplikacji, wyświetlana w menu systemowym.short_name– skrócona nazwa, używana np. na ekranie startowym.start_url– adres URL, z którego uruchamiana jest aplikacja.display– tryb wyświetlania (fullscreen,standalone,minimal-ui,browser).background_colororaztheme_color– kolory tła i motywu, wykorzystywane przy uruchamianiu aplikacji.icons– lista ikon w różnych rozdzielczościach, wykorzystywanych m.in. na ekranie startowym oraz w pasku zadań.orientation– preferowana orientacja ekranu (portraitlublandscape).scope– określenie zakresu URL, w którym aplikacja działa w trybiestandalone.related_applicationsorazprefer_related_applications– informacje o powiązanych aplikacjach natywnych.
Umieszczanie manifestu w dokumencie HTML
Aby przeglądarka rozpoznała plik manifestu, należy dodać w sekcji <head> następujący element:
<link rel="manifest" href="/manifest.json">
Po wykryciu tego odnośnika przeglądarka pobiera plik, analizuje jego zawartość i udostępnia użytkownikowi możliwość instalacji aplikacji na pulpicie lub w menu aplikacji.
Powiązane technologie
Manifest web jest często używany w połączeniu z innymi standardami, które wspólnie umożliwiają tworzenie pełnoprawnych aplikacji offline:
- Service Worker – skrypt działający w tle, odpowiedzialny za obsługę cache'u i komunikację sieciową.
- Cache API – pozwala przechowywać zasoby (HTML, CSS, JavaScript, obrazy) na urządzeniu.
- Web App Install Banner – interfejs umożliwiający wyświetlenie użytkownikowi prośby o instalację.
- HTTPS – wymóg bezpieczeństwa, którego spełnienie jest niezbędne do uruchomienia PWA.
Przykładowy manifest
{
"name": "Moja Przykładowa Aplikacja",
"short_name": "Przykład",
"start_url": "/index.html",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#3f51b5",
"icons": [
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"orientation": "portrait",
"scope": "/",
"related_applications": [],
"prefer_related_applications": false
}
Weryfikacja i testowanie
Do sprawdzania poprawności pliku manifestu oraz jego wpływu na zachowanie aplikacji służą narzędzia wbudowane w przeglądarki (Chrome DevTools, Firefox Developer Tools) oraz zewnętrzne walidatory dostępne w ramach W3C. Najważniejsze elementy testów to:
- Poprawność składni JSON.
- Zgodność wymagań specyfikacji (np. wymagane pola
nameiicons). - Widoczność i prawidłowa interpretacja ikon.
- Reakcja przeglądarki na różne wartości pola
display.
Bezpieczeństwo i prywatność
Manifest nie zawiera danych wrażliwych, ale jego prawidłowe wykorzystanie wymaga:
- Serwowania pliku przez połączenie HTTPS, co zapobiega manipulacji w trakcie transmisji.
- Unikania podawania w polu
start_urladresów prowadzących do niebezpiecznych lub niezweryfikowanych zasobów. - Ustawienia odpowiednich nagłówków CSP (Content Security Policy), aby ograniczyć ryzyko ataków typu XSS.
Przyszłość
Rozwój standardu Web App Manifest jest kontynuowany w ramach inicjatyw W3C oraz WHATWG. Planowane są m.in.:
- Rozszerzenie wsparcia dla rozszerzonej rzeczywistości (AR) i wirtualnej rzeczywistości (VR).
- Udoskonalenia w definiowaniu uprawnień aplikacji (
permissions), co ma ułatwić dostęp do funkcji sprzętowych (kamera, mikrofon). - Lepsza integracja z systemami operacyjnymi (np. Android, iOS) w zakresie instalacji i aktualizacji aplikacji.