Diese Störungen enthalten das Webmanifest mit den Pflichtfeldern, um eine Web-App installierbar zu machen.
Außerdem verfügt sie über eine Installationsschaltfläche, die standardmäßig ausgeblendet ist.
Auf das Ereignis „beforeinstallprompt“ warten
Wenn der Browser das Ereignis beforeinstallprompt
auslöst,
dass die Web-App installiert und eine Installationsschaltfläche angezeigt werden kann
für den Nutzer. Das Ereignis beforeinstallprompt
wird ausgelöst, wenn die App die
Kriterien für die Installierbarkeit.
Wenn das Ereignis erfasst wird, können Entwickler die Installation anpassen und den Nutzer auffordern installieren, wenn dies der beste Zeitpunkt ist.
- Klicke auf Zum Bearbeiten Remix, damit das Projekt bearbeitet werden kann.
- Fügen Sie dem
window
-Objekt einenbeforeinstallprompt
-Event-Handler hinzu. - Speichern Sie
event
als globale Variable. benötigen wir sie später, um . - Blende die Installationsschaltfläche ein.
Code:
window.addEventListener('beforeinstallprompt', (event) => {
// Prevent the mini-infobar from appearing on mobile.
event.preventDefault();
console.log('👍', 'beforeinstallprompt', event);
// Stash the event so it can be triggered later.
window.deferredPrompt = event;
// Remove the 'hidden' class from the install button container.
divInstall.classList.toggle('hidden', false);
});
Klicks auf die Installationsschaltfläche verarbeiten
Rufe prompt()
auf der gespeicherten beforeinstallprompt
auf, um die Installationsaufforderung anzuzeigen
. Der Aufruf von prompt()
erfolgt im Klick-Handler der Installationsschaltfläche, da
prompt()
muss über eine Nutzergeste aufgerufen werden.
- Fügen Sie einen Click-Event-Handler für die Installationsschaltfläche hinzu.
- Rufen Sie
prompt()
für das gespeichertebeforeinstallprompt
-Ereignis auf. - Protokolliere die Ergebnisse der Eingabeaufforderung.
- Setzen Sie das gespeicherte
beforeinstallprompt
-Ereignis auf null. - Blenden Sie die Installationsschaltfläche aus.
Code:
butInstall.addEventListener('click', async () => {
console.log('👍', 'butInstall-clicked');
const promptEvent = window.deferredPrompt;
if (!promptEvent) {
// The deferred prompt isn't available.
return;
}
// Show the install prompt.
promptEvent.prompt();
// Log the result
const result = await promptEvent.userChoice;
console.log('👍', 'userChoice', result);
// Reset the deferred prompt variable, since
// prompt() can only be called once.
window.deferredPrompt = null;
// Hide the install button.
divInstall.classList.toggle('hidden', true);
});
Installationsereignis erfassen
Die Installation einer Webanwendung über eine Installationsschaltfläche ist nur eine Möglichkeit, wie Nutzer
installieren können. Sie können auch das Chrome-Menü, die Miniinfoleiste und
über ein Symbol in der Omnibox. Sie können
alle Installationsmethoden, indem Sie auf den appinstalled
warten
.
- Fügen Sie dem
window
-Objekt einenappinstalled
-Event-Handler hinzu. - Protokolliere das Installationsereignis in Analytics oder einem anderen Mechanismus.
Code:
window.addEventListener('appinstalled', (event) => {
console.log('👍', 'appinstalled', event);
// Clear the deferredPrompt so it can be garbage collected
window.deferredPrompt = null;
});
Weitere Informationen
Ihre App kann jetzt installiert werden.
Außerdem haben Sie folgende Möglichkeiten: