Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Window: beforeinstallprompt Ereignis

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Das beforeinstallprompt Ereignis wird ausgelöst, wenn der Browser erkennt, dass eine Website als Progressive Web App installiert werden kann.

Es gibt keinen garantierten Zeitpunkt, zu dem dieses Ereignis ausgelöst wird, aber es passiert normalerweise beim Laden der Seite.

Der typische Verwendungszweck dieses Ereignisses ist, wenn eine Web-App ihre eigene In-App-Benutzeroberfläche bereitstellen möchte, um den Benutzer zur Installation der App aufzufordern, anstatt die generische, vom Browser bereitgestellte Oberfläche zu nutzen. Dies ermöglicht der App, mehr Kontext über die App bereitzustellen und dem Benutzer zu erklären, warum er sie installieren sollte.

In diesem Szenario wird der Handler für dieses Ereignis folgendes tun:

  • Eine Referenz auf das BeforeInstallPromptEvent Objekt, das übergeben wird, behalten.
  • Die eigene In-App-Installationsoberfläche anzeigen (diese sollte standardmäßig verborgen sein, da nicht alle Browser die Installation unterstützen).

Wenn der Benutzer die In-App-Installationsoberfläche nutzt, um die App zu installieren, ruft die In-App-Installationsoberfläche die prompt()-Methode des beibehaltenen BeforeInstallPromptEvent-Objekts auf, um das Installationsfenster anzuzeigen.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Event-Handler-Eigenschaft.

js
addEventListener("beforeinstallprompt", (event) => { })

onbeforeinstallprompt = (event) => { }

Ereignistyp

Ein BeforeInstallPromptEvent. Erbt von Event.

Event BeforeInstallPromptEvent

Ereignismethoden

BeforeInstallPromptEvent.prompt()

Zeigt ein Dialogfeld an, das den Benutzer fragt, ob er die App installieren möchte. Diese Methode gibt ein Promise zurück, das ein Objekt beschreibt, das die Entscheidung des Benutzers bei der Aufforderung zur Installation beschreibt.

Beispiele

Im folgenden Beispiel bietet eine App ihren eigenen Installationsbutton an, der die id "install" hat. Der Button ist zunächst verborgen.

html
<button id="install" hidden>Install</button>

Der beforeinstallprompt Handler:

  • Bricht das Ereignis ab, was verhindert, dass der Browser auf manchen Plattformen seine eigene Installationsoberfläche zeigt.
  • Weist das BeforeInstallPromptEvent-Objekt einer Variable zu, damit es später verwendet werden kann.
  • Zeigt den Installationsbutton der App an.
js
let installPrompt = null;
const installButton = document.querySelector("#install");

window.addEventListener("beforeinstallprompt", (event) => {
  event.preventDefault();
  installPrompt = event;
  installButton.removeAttribute("hidden");
});

Bei einem Klick:

  • Ruft der Installationsbutton der App die prompt()-Methode des gespeicherten Ereignisobjekts auf, um das Installationsfenster auszulösen.
  • Setzt seinen Zustand zurück, indem die Variable installPrompt gelöscht und der Button wieder verborgen wird.
js
installButton.addEventListener("click", async () => {
  if (!installPrompt) {
    return;
  }
  const result = await installPrompt.prompt();
  console.log(`Install prompt was: ${result.outcome}`);
  installPrompt = null;
  installButton.setAttribute("hidden", "");
});

Spezifikationen

Spezifikation
Manifest Incubations
# onbeforeinstallprompt-attribute

Browser-Kompatibilität

Siehe auch