Änderungen beim Hinzufügen zum Startbildschirm

Seit der Einführung des Banners „Zum Startbildschirm hinzufügen“ arbeiten wir daran, progressive Web-Apps verständlicher zu kennzeichnen und die Installation für Nutzer zu vereinfachen. Unser Ziel ist es, auf allen Plattformen eine Installationsschaltfläche in der Omnibox anzubieten. In Chrome 68 nehmen wir Änderungen vor, um diesem Ziel näherzukommen.

Was ändert sich?

Ab Chrome 68 für Android (stabile Version im Juli 2018) wird in Chrome kein Banner mehr angezeigt, über das Sie Apps zum Startbildschirm hinzufügen können. Wenn die Website die Kriterien für das Hinzufügen zum Startbildschirm erfüllt, wird in Chrome die Mini-Infoleiste angezeigt. Wenn der Nutzer dann auf die Mini-Infoleiste klickt oder Sie prompt() im Rahmen einer Nutzergeste auf das Ereignis beforeinstallprompt anwenden, wird in Chrome ein modales Dialogfeld zum Hinzufügen zum Startbildschirm angezeigt.

A2HS-Banner Chrome 67 und älter

A2HS-Banner – Screenshot

Wird automatisch angezeigt, wenn die Website die Kriterien für das Hinzufügen zum Startbildschirm erfüllt und das Ereignis beforeinstallprompt nicht preventDefault() aufruft.

ODER

Wird durch Aufrufen von prompt() für das Ereignis beforeinstallprompt angezeigt.

Mini-Infoleiste Chrome 68 und höher

Screenshot der Infoleiste von A2HS
Wird angezeigt, wenn die Website die Kriterien für die Funktion „Zum Startbildschirm hinzufügen“ erfüllt

Wenn ein Nutzer das Pop-up schließt, wird es erst nach einem ausreichenden Zeitraum (ca. 3 Monate) wieder angezeigt.

Wird unabhängig davon angezeigt, ob preventDefault() für das Ereignis beforeinstallprompt aufgerufen wurde.

Diese Benutzeroberfläche wird in einer zukünftigen Version von Chrome entfernt, wenn die Schaltfläche „In Omnibox installieren“ eingeführt wird.

A2HS-Dialog

Screenshot des A2HS-Dialogfelds

Wird in Chrome 68 und höher durch Aufrufen von prompt() innerhalb einer Nutzergeste für das Ereignis beforeinstallprompt angezeigt.

ODER

Wird angezeigt, wenn ein Nutzer in Chrome 68 und höher auf die Mini-Infoleiste tippt.

ODER

Wird in allen Chrome-Versionen angezeigt, nachdem der Nutzer im Chrome-Menü auf „Zum Startbildschirm hinzufügen“ geklickt hat.

Mini-Infobar

Screenshot der Mini-Infoleiste
Mini-Infoleiste

Die Mini-Infoleiste ist eine Chrome-UI-Komponente und kann nicht von der Website gesteuert werden, sondern kann vom Nutzer einfach geschlossen werden. Nachdem der Nutzer sie geschlossen hat, wird sie erst nach einer ausreichenden Zeitspanne (aktuell drei Monate) wieder angezeigt. Die Mini-Infoleiste wird angezeigt, wenn die Website die Kriterien für das Hinzufügen zum Startbildschirm erfüllt, unabhängig davon, ob Sie das beforeinstallprompt-Ereignis preventDefault() gesendet haben oder nicht.

Frühes Konzept der Schaltfläche „Installieren“ in der Omnibox.
Erstes Konzept der Schaltfläche „Installieren“ in der Omnibox
Die Mini-Infoleiste ist eine vorübergehende Lösung für Chrome auf Android. Wir arbeiten daran, eine einheitliche Oberfläche für alle Plattformen zu schaffen, die eine Schaltfläche „Installieren“ in der Omnibox enthält. ## Triggering the add to home screen dialog
Schaltfläche „Installieren“ in einer progressiven Web-App für Computer
Installationsschaltfläche in einer Desktop-progressiven Web-App

Anstatt den Nutzer beim Laden der Seite um die Berechtigung zu bitten (ein Anti-Muster für Berechtigungsanfragen), können Sie angeben, dass Ihre App über eine Benutzeroberfläche installiert werden kann, die dann die modale Installationsanfrage anzeigt. In dieser Desktop-PWA wird beispielsweise direkt über dem Profilnamen des Nutzers die Schaltfläche „App installieren“ hinzugefügt.

Wenn Sie Nutzer auffordern, Ihre App durch eine Nutzergeste zu installieren, wirkt das weniger spammig und die Wahrscheinlichkeit steigt, dass sie auf „Hinzufügen“ statt auf „Abbrechen“ klicken. Wenn Sie eine Schaltfläche „Installieren“ in Ihre App einbinden, ist sie auch dann noch da, wenn der Nutzer Ihre App heute nicht installieren möchte, also morgen oder wann immer er bereit ist, sie zu installieren.

Auf das Ereignis beforeinstallprompt warten

Wenn Ihre Website die Kriterien für das Hinzufügen zum Startbildschirm erfüllt, löst Chrome ein beforeinstallprompt-Ereignis aus, speichert eine Referenz auf das Ereignis und aktualisiert die Benutzeroberfläche, um anzuzeigen, dass der Nutzer Ihre App zum Startbildschirm hinzufügen kann.

let installPromptEvent;

window.addEventListener('beforeinstallprompt', event => {
  // Prevent Chrome <= 67 from automatically showing the prompt
  event.preventDefault();
  // Stash the event so it can be triggered later.
  installPromptEvent = event;
  // Update the install UI to notify the user app can be installed
  document.querySelector('#install-button').disabled = false;
});

Das Ereignis beforeinstallprompt wird nicht ausgelöst, wenn die App bereits installiert ist (siehe Kriterien für das Hinzufügen zum Startbildschirm). Wenn der Nutzer die App jedoch später deinstalliert, wird das Ereignis beforeinstallprompt bei jeder Seitennavigation wieder ausgelöst.

Dialogfeld mit prompt() wird angezeigt

Dialogfeld „Zum Startbildschirm hinzufügen“
Dialogfeld „Zum Startbildschirm hinzufügen“

Wenn Sie das Dialogfeld „Zum Startbildschirm hinzufügen“ aufrufen möchten, rufen Sie prompt() für das gespeicherte Ereignis innerhalb einer Nutzergeste auf. Chrome zeigt das modale Dialogfeld an, in dem der Nutzer aufgefordert wird, Ihre App seinem Startbildschirm hinzuzufügen. Anschließend warte auf das Promise, das von der userChoice-Eigenschaft des beforeinstallprompt-Ereignisses zurückgegeben wird. Das Promise gibt ein Objekt mit einer outcome-Property zurück, nachdem die Aufforderung angezeigt und der Nutzer darauf reagiert hat.

btnInstall.addEventListener('click', () => {
  // Update the install UI to remove the install button
  document.querySelector('#install-button').disabled = true;
  // Show the modal add to home screen dialog
  installPromptEvent.prompt();
  // Wait for the user to respond to the prompt
  installPromptEvent.userChoice.then(choice => {
    if (choice.outcome === 'accepted') {
      console.log('User accepted the A2HS prompt');
    } else {
      console.log('User dismissed the A2HS prompt');
    }
    // Clear the saved prompt since it can't be used again
    installPromptEvent = null;
  });
});

Sie können prompt() für das verzögerte Ereignis nur einmal aufrufen. Wenn der Nutzer im Dialogfeld auf „Abbrechen“ klickt, müssen Sie warten, bis das beforeinstallprompt-Ereignis bei der nächsten Seitennavigation ausgelöst wird. Anders als bei herkömmlichen Berechtigungsanfragen werden durch Klicken auf „Abbrechen“ keine zukünftigen Aufrufe von prompt() blockiert, da dieser Aufruf innerhalb einer Nutzergeste erfolgen muss.

Zusätzliche Ressourcen

Weitere Informationen finden Sie unter Banner für App-Installationen. Dort erfahren Sie unter anderem:

  • Details zum Ereignis beforeinstallprompt
  • Antwort des Nutzers auf die Aufforderung zum Hinzufügen zum Startbildschirm erfassen
  • Überprüfen, ob die App installiert wurde
  • Prüfen, ob Ihre App als installierte App ausgeführt wird