Generator manifestu PWA
Plik manifest.json, fragment do sekcji head i kontrola 7 wymagań instalacji aplikacji webowej
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Pod ikoną; najlepiej do 12 znaków. Puste = pełna nazwa.
Format: ścieżka; rozmiar; typ; przeznaczenie. Typ i przeznaczenie można pominąć (typ z rozszerzenia, przeznaczenie any).
Zmieniono dane. Kliknij „Generuj manifest”, aby odświeżyć wynik.
Kontrola manifestu
Spełnione 7 z 7 punktów kontroli. Wgraj plik manifest.json na serwer z HTTPS i wklej fragment do sekcji head każdej strony.
Ikony
Linie
Rozmiar
Kontrola
manifest.json
Fragment do sekcji head
| Punkt | Rodzaj | Stan | Wskazówka |
|---|---|---|---|
| Nazwa aplikacji (name / short_name) | wymagane | OK | Jest. |
| Ikona 192×192 px | wymagane | OK | Jest. |
| Ikona 512×512 px | wymagane | OK | Jest. |
| Tryb wyświetlania (display) | wymagane | OK | Tryb standalone pozwala na instalację. |
| start_url w zakresie scope | zalecane | OK | Adres startowy leży w zakresie. |
| Ikona maskable | zalecane | OK | Jest. |
| Krótka nazwa do 12 znaków | zalecane | OK | Ma 7 zn. |
Ściąga: pola manifestu PWA
| Pole | Do czego służy | Przykład |
|---|---|---|
| name | Pełna nazwa: okno instalacji, lista aplikacji. | Moja Lista Zadań |
| short_name | Nazwa pod ikoną na ekranie głównym, gdy brak miejsca na pełną. | Zadania |
| start_url | Adres otwierany po uruchomieniu z ikony. | /?source=pwa |
| scope | Adresy należące do aplikacji; poza nimi przeglądarka pokazuje swój interfejs. | / |
| id | Stały identyfikator aplikacji; bez niego liczony ze start_url. | / |
| display | Tryb okna aplikacji (tabela niżej). | standalone |
| theme_color | Kolor paska tytułu / paska stanu. | #4f6df5 |
| background_color | Tło ekranu powitalnego przed załadowaniem strony. | #ffffff |
| icons | Ikony aplikacji; Chrome wymaga 192×192 i 512×512 px. | /icons/icon-192.png |
| display | Jak wygląda | Kiedy wybrać |
|---|---|---|
| fullscreen | Cały ekran, bez interfejsu przeglądarki i paska stanu. | Gry, wideo, kioski |
| standalone | Osobne okno jak aplikacja natywna, bez paska adresu. | Większość aplikacji |
| minimal-ui | Jak standalone, plus minimalne przyciski nawigacji (obsługa zależy od przeglądarki). | Serwisy z nawigacją wstecz |
| browser | Zwykła karta przeglądarki; aplikacji nie da się zainstalować. | Brak instalacji |
Jak podłączyć manifest
Wgraj plik do katalogu głównego serwisu, a fragment z wyniku wklej do sekcji <head> każdej strony. Plik może się nazywać manifest.json albo manifest.webmanifest; ważne, by ścieżka w <link rel="manifest"> wskazywała właściwy adres.
Ikona maskable
Android przycina ikony do kształtu (koło, zaokrąglony kwadrat). Ikona maskable ma margines: ważna treść mieści się w środkowym kole o średnicy 80% szerokości. Nie oznaczaj zwykłego logo jako maskable, bo krawędzie zostaną obcięte.
start_url i scope
Adres startowy musi leżeć w zakresie. Gdy jest poza nim, przeglądarka ignoruje wpisany scope i wyznacza zakres z adresu startowego. Przy aplikacji w podkatalogu ustaw np. scope na /app/ i start_url na /app/.
Co poza manifestem
Strona musi działać po HTTPS (do testów wystarczy localhost). Praca offline i powiadomienia wymagają service workera. Wynik sprawdzisz w narzędziach deweloperskich Chrome: Application, Manifest.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator manifestu PWA
Progressive Web App to strona, którą można zainstalować na telefonie lub komputerze. Serce instalacji to plik manifest.json. Generator manifestu PWA buduje go z formularza, dokłada fragment do sekcji <head> i od razu sprawdza 7 punktów, od których zależy, czy przeglądarka zaproponuje instalację.
Podłączenie
Pod manifestem narzędzie wypisuje gotowy kod do sekcji <head>. Dla danych przykładowych wygląda tak:
<link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#4f6df5"><link rel="apple-touch-icon" href="/icons/icon-192.png">
Znacznik apple-touch-icon pojawia się tylko wtedy, gdy na liście jest ikona PNG z przeznaczeniem any. Generator wybiera tę, której szerokość jest najbliższa 180 px, bo iOS nie w każdej wersji korzysta z ikon z manifestu. Jeśli zapiszesz plik pod inną nazwą albo w podkatalogu, popraw adres w href.
Co jeszcze potrzebne?
- service worker (offline i cache),
- HTTPS (PWA wymaga bezpiecznego połączenia; do testów wystarczy localhost),
- pliki ikon pod ścieżkami z manifestu, w zadeklarowanych wymiarach,
- ikona maskable — system przycina ją do swojego kształtu,
- responsywny layout i szybkie ładowanie.
Jak działa generator manifestu PWA
Manifest aplikacji to zwykły plik JSON: jeden obiekt, w którym każda informacja ma własny klucz i wartość. Generator zamienia to, co wpiszesz w formularzu, na gotowy dokument z wcięciami — sam wstawia cudzysłowy, dwukropki i przecinki we właściwych miejscach i nie zostawia przecinka po ostatnim wpisie. Jeden nadmiarowy przecinek wystarczy, żeby przeglądarka odrzuciła cały plik i nie pokazała opcji instalacji.
Kolejność kluczy nie ma znaczenia, liczą się typy wartości: display przyjmuje jeden z ustalonych trybów, pole koloru wymaga zapisu szesnastkowego (#4f6df5 albo skrócone #fff), a icons to tablica obiektów, z których każdy opisuje jeden plik graficzny osobnymi polami — src, sizes, type i purpose.
Formularz pilnuje formatu, zanim powstanie wynik. Kod języka zapisujesz jak „pl” albo „pl-PL”, kategorii może być najwyżej 20, a ikon najwyżej 30. Błąd pojawia się przy konkretnym polu, a w liście ikon razem z numerem linii. Puste pola opisu, języka, kategorii i id są pomijane, pusta krótka nazwa przejmuje pełną nazwę, a puste start_url i scope dostają wartość „/”.
Gotowy manifest kopiujesz albo pobierasz przyciskiem jako plik manifest.json, wgrywasz na serwer i podłączasz fragmentem z sekcji wyżej. Przeglądarka pobiera manifest przy wejściu na stronę i na tej podstawie wie, jak nazwać skrót na pulpicie i którą ikonę wyświetlić.
Trzy przyciski typu aplikacji ustawiają jednym kliknięciem display i orientation: Aplikacja (standalone, portrait), Gra (fullscreen, landscape) i Minimalna (minimal-ui, any).
Kontrola wymagań instalacji
Pod wynikiem jest tabela 7 punktów opartych na kryteriach Chrome. Brak w punkcie wymaganym daje status „Brakuje wymagań instalacji”, brak w zalecanym — „Manifest poprawny, są zalecenia”, a komplet — „Manifest kompletny”.
| Punkt | Rodzaj | Kiedy pojawia się problem |
|---|---|---|
| name / short_name | wymagane | bez pełnej nazwy manifest w ogóle nie powstanie |
| ikona 192×192 px | wymagane | żaden wpis nie ma rozmiaru 192x192 |
| ikona 512×512 px | wymagane | żaden wpis nie ma rozmiaru 512x512 |
| display | wymagane | wybrano browser, który nie daje instalowalnej aplikacji |
| start_url w zakresie scope | zalecane | adres startowy leży poza zakresem; gdy jeden adres jest pełny, a drugi względny, trzeba to sprawdzić ręcznie |
| ikona maskable | zalecane | brak wpisu z maskable — na Androidzie ikona może dostać białą ramkę |
| short_name do 12 znaków | zalecane | dłuższa nazwa może zostać ucięta pod ikoną |
Przykład: manifest dla kalkulatora walut krok po kroku
- Nazwa pełna: w polu name wpisujesz Kalkulator walut. Ta wartość trafia na ekran instalacji i do listy aplikacji.
- Nazwa skrócona: short_name to Kalkulator — 10 znaków, więc mieści się w zalecanych 12. Pojawi się pod ikoną na pulpicie.
- Adresy: start_url ustawiasz na /, a scope również na /. Aplikacja obejmuje wtedy całą witrynę, a uruchomienie otwiera stronę główną.
- Typ aplikacji: przycisk „Aplikacja” ustawia display = standalone, czyli okno bez paska adresu przeglądarki, i orientation = portrait.
- Kolory: theme_color to #0b5fff i odpowiada za pasek systemowy, a background_color to #ffffff — tło widoczne, zanim strona się wczyta.
- Ikony: dwie linie w polu icons,
/icons/icon-192.png; 192x192i/icons/icon-512.png; 512x512. Typ image/png generator odczyta z rozszerzenia, a przeznaczenie ustawi na any. - Opis, język i kategorie czyścisz. Manifest ma wtedy 9 kluczy najwyższego poziomu: name, short_name, start_url, scope, display, orientation, theme_color, background_color i icons.
Kontrola pokaże 6 z 7 punktów i status „Manifest poprawny, są zalecenia”, bo brakuje ikony maskable. Po dopisaniu trzeciej linii /icons/maskable-512.png; 512x512; image/png; maskable wynik zmieni się na 7 z 7. Jako apple-touch-icon trafi do fragmentu /icons/icon-192.png: różnica 192 − 180 = 12 px jest mniejsza niż 512 − 180 = 332 px, a ikona maskable nie jest brana pod uwagę.
Ściągawka: pola manifestu i dopuszczalne wartości
| Pole | Dozwolone wartości | O czym decyduje |
|---|---|---|
| display | fullscreen, standalone, minimal-ui, browser | Wygląd okna po instalacji; browser to zwykła karta, bez instalacji |
| orientation | any, natural, portrait, landscape oraz warianty -primary i -secondary | Podpowiedź, w jakiej orientacji uruchomić aplikację — nie jest gwarantowana |
| icons[].sizes | np. 192x192, 512x512, kilka rozmiarów po spacji albo any | Rzeczywisty wymiar pliku; musi zgadzać się z obrazkiem |
| icons[].purpose | any, maskable, monochrome (można łączyć spacją) | any to zwykła ikona, maskable pozwala systemowi przyciąć grafikę do własnego kształtu |
| icons[].type | image/png, image/svg+xml, image/webp, image/jpeg, image/x-icon, image/gif | Format pliku; przy pustym polu generator ustala go z rozszerzenia, niezgodny wpis potrafi wyłączyć ikonę z użycia |
| theme_color | kolor szesnastkowy, np. #0b5fff | Kolor paska systemowego po uruchomieniu aplikacji |
| background_color | kolor szesnastkowy, np. #ffffff | Tło ekranu startowego, zanim wczyta się treść |
| start_url i scope | ścieżka lub adres w obrębie tej samej domeny | Gdzie startuje aplikacja i które adresy są uznawane za jej część |
| id | ścieżka, np. / | Stały identyfikator aplikacji; bez niego przeglądarka wylicza go ze start_url |
| lang, categories | kod języka (pl, pl-PL); słowa po przecinku, np. productivity, utilities | Język nazw i opisu oraz podpowiedź kategorii dla sklepów z aplikacjami |
Jak korzystać z generatora — wskazówki
- Nazwa pełna i skrócona to dwie różne role. Pełna bywa przycinana w niektórych miejscach interfejsu, więc wersję skróconą potraktuj jako osobną decyzję, a nie kopię z obciętym końcem.
- Ikonie maskable daj osobny wpis i osobny plik z marginesem: ważna treść musi zmieścić się w środkowym kole o średnicy 80% szerokości. Zwykłe logo oznaczone jako maskable straci krawędzie.
- Adres startowy powinien leżeć w zakresie. Gdy jest poza nim, przeglądarka ignoruje wpisany scope i wyznacza zakres z adresu startowego. Przy aplikacji w podkatalogu ustaw oba pola na przykład na /app/.
- Po wdrożeniu sprawdź w Chrome kartę Application, sekcję Manifest.
- Przeglądarki trzymają manifest i ikony w pamięci podręcznej, więc stara wersja potrafi się utrzymywać jeszcze po podmianie pliku. Zmiany między wersjami najprościej porównać w narzędziu do porównywania różnic w kodzie.
Czego narzędzie nie zrobi
- Nie tworzy plików graficznych ani nie wgrywa ich na serwer. Generator wypisuje ścieżki do ikon, ale same obrazki musisz przygotować i opublikować samodzielnie, na przykład w generatorze faviconów.
- Service workera nie generuje — dostajesz manifest i fragment do sekcji head, a skrypt odpowiadający za tryb offline piszesz po swojej stronie.
- Różnic między systemami nie wyrówna: Android, iOS i przeglądarki desktopowe część pól ignorują.
- Kontrola patrzy wyłącznie na wpisy w manifeście. Narzędzie nie wie, czy plik pod adresem z pola src istnieje ani czy jego rzeczywisty rozmiar zgadza się z deklaracją.
Najczęstsze pytania
Czy PWA wymaga service workera?
Do zbudowania manifestu nie, ale bez service workera aplikacja nie będzie działać offline ani wysyłać powiadomień.
Dlaczego aplikacja nie instaluje się?
Najczęściej brakuje HTTPS, ikony 192×192 lub 512×512 albo display ustawiono na browser. Dwa ostatnie przypadki wychwyci kontrola w generatorze, a HTTPS i dostępność plików ikon sprawdzisz w Chrome w karcie Application.
Czym jest ikona maskable?
To ikona z bezpieczną strefą, którą system może przyciąć do koła lub zaokrąglonego kwadratu bez utraty treści. Nie jest obowiązkowa, ale na Androidzie bez niej ikona może dostać białą ramkę.
Czy plik musi nazywać się manifest.json?
Nie. Popularna jest też nazwa manifest.webmanifest; liczy się to, żeby adres w <link rel="manifest"> wskazywał właściwy plik.
Czy wystarczy jedna ikona 512x512?
Kontrola w generatorze oznaczy wtedy brak ikony 192×192 jako niespełnione wymaganie. Przy jednym pliku system i tak skaluje go w dół, co daje mniej ostry obraz, więc podaj oba rozmiary.
Czy mogę użyć ikony SVG zamiast PNG?
Możesz, jeśli w polu type wskażesz image/svg+xml, ale nie każdy system obsługuje wektor w tym miejscu. Bezpieczniej dać PNG jako podstawę i SVG jako uzupełnienie; apple-touch-icon generator wybiera wyłącznie spośród ikon PNG.