Jak zamienić stronę internetową w progresywną aplikację webową

Jak zamienić stronę w PWA (przetestowany kod) | We.Inc

Spraw, by dowolna strona dała się zainstalować i działała offline: generator manifestu, przetestowany service worker, przycisk instalacji, ograniczenia na iPhonie oraz konfiguracja Vite lub Next.js.

Jak zamienić stronę internetową w progresywną aplikację webową

Aby zamienić stronę w progresywną aplikację webową, serwuj ją przez HTTPS, dodaj manifest.webmanifest z nazwą, start_url, trybem wyświetlania i ikonami 192 i 512 pikseli, podlinkuj go na każdej stronie i zarejestruj service worker, który zapisuje pliki w cache do użytku offline. Przeglądarki Chromium zaproponują wtedy instalację; użytkownicy Safari dodają ją z menu Udostępnij.

Trzy części PWA

Wypełnij formularz, aby otrzymać manifest i tagi do wklejenia w sekcji head, a potem skopiuj service worker i skrypt instalacji. Worker z tej strony uruchomiliśmy w prawdziwej przeglądarce z odciętą siecią, zanim go opublikowaliśmy.

Najczęściej zadawane pytania

Czy PWA potrzebuje service workera, żeby dało się ją zainstalować?

W obecnym Chrome nie: poprawny manifest, HTTPS i trochę interakcji użytkownika wystarczą, by pojawiła się opcja instalacji. Worker nadal jest potrzebny, bo bez niego zainstalowana aplikacja offline pokazuje stronę błędu przeglądarki.

Czy PWA działają na iPhonie?

Tak, z ograniczeniami. Użytkownicy Safari instalują z menu Udostępnij, nie ma zdarzenia okna instalacji, a powiadomienia push działają tylko dla strony dodanej do ekranu początkowego w iOS 16.4 lub nowszym. Cache offline działa.

Dlaczego mój przycisk instalacji nigdy się nie pojawia?

beforeinstallprompt uruchamia się tylko w przeglądarkach Chromium, tylko gdy spełnione są kryteria instalacji i nie wtedy, gdy aplikacja jest już zainstalowana. Przyczynę znajdziesz w sekcji Manifest panelu Application w DevTools.

Jak sprawdzić PWA teraz, gdy Lighthouse nie ma już oceny PWA?

Lighthouse 12 usunął kategorię PWA. Użyj panelu Application w Chrome DevTools: widok Manifest wypisuje błędy instalowalności i problemy z ikonami, a widok Service workers pokazuje rejestrację, aktualizacje i przełącznik Offline.

Jak zaktualizować PWA po wydaniu?

Zmień VERSION cache w sw.js. Przeglądarka widzi zmieniony worker, instaluje go, a krok activate usuwa stare cache. Dzięki skipWaiting i clients.claim nowy worker przejmuje kontrolę przy następnym ładowaniu.

Najpierw cache czy najpierw sieć

Typowe błędy

Co zyskujesz i jakie są ograniczenia na iPhonie

Instalacja daje Twojej stronie własną ikonę i okno bez paska adresu. Service worker dodaje strony offline. Push wymaga obu, a Apple pozwala na niego tylko dla stron, które użytkownik dodał do ekranu początkowego.

Co potrafi PWA na poszczególnych platformach

Działający service worker

Trzy pliki sprawiają, że strona działa offline: worker, strona zapasowa i kilka linii do jego rejestracji. Uruchomiliśmy dokładnie te pliki na localhost w Chromium: worker się zainstalował, cache się wypełnił, a po zatrzymaniu serwera strona główna załadowała się z cache, podczas gdy nigdy nieodwiedzona strona pokazała offline.html.

sw.js: minimalny service worker działający offline

Strony najpierw próbują sieci, aby ludzie widzieli świeżą treść, potem sięgają po kopię z cache, a na końcu po offline.html. Pliki takie jak CSS, skrypty i ikony pochodzą najpierw z cache. Zmiana VERSION sprawia, że następny krok activate usuwa stare cache.

offline.html: strona zapasowa

Niech będzie samowystarczalna: style inline i żadnych zewnętrznych plików, bo gdy się wyświetla, nic innego może nie być osiągalne.

Przycisk instalacji

app.js: zarejestruj worker i pokaż przycisk instalacji

Zdarzenie beforeinstallprompt uruchamia się tylko w przeglądarkach Chromium (Chrome, Edge, Samsung Internet, Opera). Safari i Firefox nigdy go nie wysyłają, więc tam przycisk pozostaje ukryty, a ludzie korzystają z menu samej przeglądarki.

Obecne kryteria instalacji

Chrome nie wymaga już service workera, zanim zaproponuje instalację; sprawdza manifest i poniższe elementy. Lighthouse 12 usunął kategorię PWA, więc instalowalność sprawdzaj w Chrome DevTools: panel Application, a potem Manifest, gdzie wszelkie problemy są wypisane pod Installability.

Wymagania instalacji w Chrome

Konfiguracje Vite i Next.js

Vite: vite-plugin-pwa

Zainstaluj przez npm i -D vite-plugin-pwa. Wtyczka zapisuje manifest i generuje service worker Workbox podczas builda, więc nie piszesz sw.js ręcznie. Ikony umieść w public/.

Next.js App Router: app/manifest.ts

Next.js serwuje ten plik pod /manifest.webmanifest i sam dodaje tag link. Dla obsługi offline umieść powyższy sw.js w public/ i zarejestruj go z małego komponentu klienckiego.

Next.js: zarejestruj public/sw.js z komponentu klienckiego

Wyrenderuj to raz w app/layout.tsx. Pomiń rejestrację w trybie deweloperskim, aby zbuforowany build nie ukrywał Twoich zmian.

Nazwa aplikacji

Krótka nazwa (pod ikoną)

Startowy URL

Folder ikon

Kolor motywu

Kolor tła

Kopiuj

Generator manifestu

Tryb wyświetlania

Dołącz ikonę maskable

Zapisz ikony jako icon-192.png i icon-512.png (oraz icon-512-maskable.png) w folderze ikon.

Tagi do sekcji head każdej strony

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony