Dieser Glitch enthält das Web-Manifest mit den erforderlichen Feldern, um eine Web-App installierbar zu machen.
Außerdem ist eine Installationsschaltfläche vorhanden, die standardmäßig ausgeblendet ist.
Auf das „beforeinstallprompt“-Ereignis warten
Wenn der Browser das beforeinstallprompt
-Ereignis auslöst, ist das ein Hinweis darauf, dass die Web-App installiert werden kann und dem Nutzer eine Installationsschaltfläche angezeigt werden kann. Das Ereignis beforeinstallprompt
wird ausgelöst, wenn die App die Kriterien für die Installation erfüllt.
Durch das Erfassen des Ereignisses können Entwickler die Installation anpassen und den Nutzer auffordern, die App zu installieren, wenn sie es für den besten Zeitpunkt halten.
- Klicken Sie auf Remix to Edit (Remix zum Bearbeiten), um das Projekt bearbeitbar zu machen.
- Fügen Sie dem
window
-Objekt einenbeforeinstallprompt
-Event-Handler hinzu. - Speichern Sie
event
als globale Variable. Wir benötigen sie später, um die Aufforderung anzuzeigen. - Machen Sie die Schaltfläche „Installieren“ wieder sichtbar.
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);
});
Klick auf die Schaltfläche „Installieren“ verarbeiten
Rufen Sie prompt()
für das gespeicherte beforeinstallprompt
-Ereignis auf, um die Aufforderung zur Installation anzuzeigen. Der Aufruf von prompt()
erfolgt im Click-Handler der Installationsschaltfläche, da prompt()
über eine Nutzeraktion aufgerufen werden muss.
- Fügen Sie einen Click-Event-Handler für die Schaltfläche „Installieren“ hinzu.
- Rufen Sie
prompt()
für das gespeichertebeforeinstallprompt
-Ereignis auf. - Protokollieren Sie die Ergebnisse des Prompts.
- Setzen Sie das gespeicherte
beforeinstallprompt
-Ereignis auf „null“. - Schaltfläche „Installieren“ ausblenden
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 Web-App über eine Schaltfläche ist nur eine Möglichkeit für Nutzer, sie zu installieren. Sie können auch das Chrome-Menü, die Mini-Infoleiste und ein Symbol in der Omnibox verwenden. Sie können alle diese Installationsmethoden erfassen, indem Sie auf das appinstalled
-Ereignis warten.
- Fügen Sie dem
window
-Objekt einenappinstalled
-Event-Handler hinzu. - Das Installationsereignis in Analysetools oder anderen Mechanismen protokollieren.
Code:
window.addEventListener('appinstalled', (event) => {
console.log('👍', 'appinstalled', event);
// Clear the deferredPrompt so it can be garbage collected
window.deferredPrompt = null;
});
Weitere Informationen
Herzlichen Glückwunsch, Ihre App kann jetzt installiert werden.
Hier sind einige zusätzliche Möglichkeiten: