Mach jede Website installierbar und offlinefähig: ein Manifest-Generator, ein getesteter Service Worker, ein Installieren-Button, die Grenzen auf dem iPhone und das Setup für Vite oder Next.js.
Um eine Website in eine Progressive Web App zu verwandeln, liefere sie über HTTPS aus, ergänze eine manifest.webmanifest mit Name, start_url, Anzeigemodus und Icons in 192 und 512 Pixeln, verlinke sie auf jeder Seite und registriere einen Service Worker, der Dateien für die Offline-Nutzung cacht. Chromium-Browser bieten dann die Installation an; Safari-Nutzer fügen sie über Teilen hinzu.
Die drei Bestandteile einer PWA
Füll das Formular aus, um ein Manifest und die Head-Tags zum Einfügen zu erhalten, und kopiere dann den Service Worker und das Installationsskript. Den Worker auf dieser Seite haben wir vor der Veröffentlichung in einem echten Browser mit getrennter Netzwerkverbindung laufen lassen.
Im aktuellen Chrome nicht: Ein gültiges Manifest, HTTPS und etwas Nutzerinteraktion reichen für die Installationsoption. Einen Worker willst du trotzdem, denn ohne ihn zeigt die installierte App offline die Fehlerseite des Browsers.
Ja, mit Einschränkungen. Safari-Nutzer installieren über das Teilen-Menü, es gibt kein Event für eine Installationsaufforderung, und Push-Benachrichtigungen funktionieren nur für eine Website, die unter iOS 16.4 oder neuer zum Home-Bildschirm hinzugefügt wurde. Offline-Caching funktioniert.
beforeinstallprompt wird nur in Chromium-Browsern ausgelöst, nur wenn die Installationskriterien erfüllt sind, und nicht, wenn die App bereits installiert ist. Den Grund findest du im Abschnitt Manifest des DevTools-Bereichs Application.
Lighthouse 12 hat die PWA-Kategorie gestrichen. Nutze den Bereich Application in den Chrome DevTools: Die Ansicht Manifest listet Installationsfehler und Icon-Probleme auf, und die Ansicht Service workers zeigt Registrierung, Updates und einen Offline-Schalter.
Ändere die Cache-VERSION in sw.js. Der Browser erkennt den geänderten Worker, installiert ihn, und der activate-Schritt entfernt die alten Caches. Mit skipWaiting und clients.claim übernimmt der neue Worker beim nächsten Laden.
Durch die Installation bekommt deine Website ein eigenes Icon und ein Fenster ohne Adressleiste. Ein Service Worker ergänzt Offline-Seiten. Push braucht beides, und Apple erlaubt es nur für Websites, die der Nutzer zum Home-Bildschirm hinzugefügt hat.
Was eine PWA kann, nach Plattform
Drei Dateien machen eine Website offlinefähig: der Worker, eine Fallback-Seite und ein paar Zeilen, um ihn zu registrieren. Wir haben genau diese Dateien auf localhost in Chromium laufen lassen: Der Worker wurde installiert, der Cache gefüllt, und mit gestopptem Server lud die Startseite aus dem Cache, während eine nie besuchte Seite offline.html zeigte.
Seiten versuchen zuerst das Netzwerk, damit Menschen frische Inhalte sehen, greifen dann auf eine gecachte Kopie zurück und zuletzt auf offline.html. Dateien wie CSS, Skripte und Icons kommen zuerst aus dem Cache. Wenn du VERSION änderst, löscht der nächste activate-Schritt die alten Caches.
Halte sie in sich geschlossen: Inline-Styles und keine externen Dateien, denn wenn sie angezeigt wird, ist vielleicht nichts anderes erreichbar.
Das Event beforeinstallprompt wird nur in Chromium-Browsern ausgelöst (Chrome, Edge, Samsung Internet, Opera). Safari und Firefox senden es nie, daher bleibt der Button dort verborgen, und Menschen nutzen stattdessen das Menü des Browsers.
Chrome besteht nicht mehr auf einem Service Worker, bevor es die Installation anbietet; geprüft werden das Manifest und die Punkte unten. Lighthouse 12 hat seine PWA-Kategorie entfernt, prüfe die Installierbarkeit also stattdessen in den Chrome DevTools: Bereich Application, dann Manifest, wo alle Probleme unter Installability aufgelistet sind.
Installationsanforderungen von Chrome
Installiere mit npm i -D vite-plugin-pwa. Das Plugin schreibt das Manifest und erzeugt beim Build einen Workbox-Service-Worker, sodass du sw.js nicht von Hand schreibst. Leg die Icons in public/ ab.
Next.js liefert diese Datei unter /manifest.webmanifest aus und fügt das Link-Tag für dich hinzu. Für Offline-Unterstützung legst du die sw.js von oben in public/ ab und registrierst sie aus einer kleinen Client-Komponente.
Rendere sie einmal in app/layout.tsx. Überspringe die Registrierung in der Entwicklung, damit ein gecachter Build deine Änderungen nicht verdeckt.
App-Name
Kurzname (unter dem Icon)
Start-URL
Icon-Ordner
Designfarbe
Hintergrundfarbe
Kopieren
Manifest-Generator
Anzeige
Maskierbares Icon einschließen
Speichere deine Icons als icon-192.png und icon-512.png (und icon-512-maskable.png) im Icon-Ordner.
Tags für den Head jeder Seite
Kostenlos starten · Keine Kreditkarte nötig