Maak elke website installeerbaar en offline bruikbaar: een manifestgenerator, een geteste service worker, een installatieknop, de beperkingen op iPhone en de setup voor Vite of Next.js.
Om een website om te zetten naar een progressive web app, serveert u haar via HTTPS, voegt u een manifest.webmanifest toe met een name, start_url, weergavemodus en iconen van 192 en 512 pixels, linkt u die vanaf elke pagina en registreert u een service worker die bestanden cachet voor offline gebruik. Chromium-browsers bieden dan installatie aan; Safari-gebruikers voegen haar toe via Deel.
De drie onderdelen van een PWA
Vul het formulier in om een manifest en de head-tags om te plakken te krijgen, en kopieer daarna de service worker en het installatiescript. De worker op deze pagina hebben we in een echte browser met verbroken netwerk gedraaid voordat we hem publiceerden.
In de huidige Chrome niet: een geldig manifest, HTTPS en wat interactie van de gebruiker zijn genoeg voor de installatieoptie. U wilt toch een worker, want zonder worker toont de geïnstalleerde app offline de foutpagina van de browser.
Ja, met beperkingen. Safari-gebruikers installeren via het menu Deel, er is geen install prompt-event en pushmeldingen werken alleen voor een site die op het beginscherm is gezet op iOS 16.4 of later. Offline caching werkt wel.
beforeinstallprompt wordt alleen in Chromium-browsers afgevuurd, alleen als aan de installatiecriteria is voldaan en niet als de app al is geïnstalleerd. Kijk in het onderdeel Manifest van het paneel Application in DevTools voor de reden.
Lighthouse 12 heeft de PWA-categorie geschrapt. Gebruik het paneel Application in Chrome DevTools: de weergave Manifest toont installatiefouten en problemen met iconen, en de weergave Service workers toont registratie, updates en een schakelaar Offline.
Wijzig de cache-VERSION in sw.js. De browser ziet de gewijzigde worker, installeert hem en de activate-stap verwijdert de oude caches. Met skipWaiting en clients.claim neemt de nieuwe worker het over bij de volgende keer laden.
Installeren geeft uw site een eigen icoon en een venster zonder adresbalk. Een service worker voegt offline pagina's toe. Push heeft beide nodig, en Apple staat het alleen toe voor sites die de gebruiker op het beginscherm heeft gezet.
Wat een PWA kan, per platform
Drie bestanden laten een site offline werken: de worker, een terugvalpagina en een paar regels om hem te registreren. We draaiden precies deze bestanden op localhost in Chromium: de worker werd geïnstalleerd, de cache vulde zich, en met de server gestopt laadde de homepage uit de cache terwijl een nooit bezochte pagina offline.html toonde.
Pagina's proberen eerst het netwerk zodat mensen verse inhoud zien, vallen dan terug op een gecachete kopie en daarna op offline.html. Bestanden zoals CSS, scripts en iconen komen eerst uit de cache. Door VERSION te wijzigen verwijdert de volgende activate-stap de oude caches.
Houd haar op zichzelf staand: inline styles en geen externe bestanden, want verder is er misschien niets bereikbaar als ze verschijnt.
Het beforeinstallprompt-event wordt alleen in Chromium-browsers afgevuurd (Chrome, Edge, Samsung Internet, Opera). Safari en Firefox sturen het nooit, dus daar blijft de knop verborgen en gebruiken mensen het eigen menu van de browser.
Chrome eist niet langer een service worker voordat het installatie aanbiedt; het manifest en de onderdelen hieronder zijn wat het controleert. Lighthouse 12 heeft de PWA-categorie verwijderd, dus controleer de installeerbaarheid in Chrome DevTools: paneel Application, dan Manifest, waar eventuele problemen onder Installability staan.
De installatievereisten van Chrome
Installeer met npm i -D vite-plugin-pwa. De plugin schrijft het manifest en genereert tijdens de build een Workbox-service worker, dus u schrijft sw.js niet met de hand. Zet de iconen in public/.
Next.js serveert dit bestand op /manifest.webmanifest en voegt de link-tag voor u toe. Voor offline ondersteuning zet u de sw.js van hierboven in public/ en registreert u hem vanuit een kleine client component.
Render dit één keer in app/layout.tsx. Sla registratie over in development zodat een gecachete build uw wijzigingen niet verbergt.
Naam van de app
Korte naam (onder het icoon)
Start-URL
Map met iconen
Themakleur
Achtergrondkleur
Kopiëren
Manifestgenerator
Weergave
Een maskable icoon toevoegen
Sla uw iconen op als icon-192.png en icon-512.png (en icon-512-maskable.png) in de map met iconen.
Tags voor de head van elke pagina
Gratis beginnen · Geen creditcard nodig