Прослушивание события beforeinstallprompt
Когда браузер запускает событие beforeinstallprompt, это означает, что веб-приложение можно установить и пользователю можно показать кнопку установки. Событие beforeinstallprompt активируется, когда приложение соответствует критериям установки.
Отслеживание события позволяет разработчикам настраивать установку и предлагать пользователю установить приложение в наиболее подходящий момент.
- Нажмите Создать ремикс, чтобы сделать проект редактируемым.
- Добавьте обработчик событий
beforeinstallpromptв объектwindow. - Сохраните
eventкак глобальную переменную. Она понадобится позже, чтобы показать запрос. - Покажите кнопку установки.
Код:
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);
});
Обработка нажатия кнопки установки
Чтобы показать запрос на установку, вызовите prompt() для сохраненного события beforeinstallprompt. Метод prompt() вызывается в обработчике нажатия кнопки установки, поскольку prompt() должен вызываться в результате жеста пользователя.
- Добавьте обработчик событий клика для кнопки установки.
- Вызовите
prompt()для сохраненного событияbeforeinstallprompt. - Запишите результаты запроса.
- Установите для сохраненного события
beforeinstallpromptзначение null. - Скрыть кнопку установки.
Код:
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);
});
Отслеживание события установки
Установка веб-приложения с помощью кнопки установки – это лишь один из способов, которым пользователи могут его установить. Также можно использовать меню Chrome, мини-панель и значок в омнибоксе. Вы можете отслеживать все эти способы установки, прослушивая событие appinstalled.
- Добавьте обработчик событий
appinstalledв объектwindow. - Зарегистрируйте событие установки в аналитике или другом механизме.
Код:
window.addEventListener('appinstalled', (event) => {
console.log('👍', 'appinstalled', event);
// Clear the deferredPrompt so it can be garbage collected
window.deferredPrompt = null;
});
Дополнительные сведения
Поздравляем! Теперь ваше приложение можно установить.
Вот что ещё можно сделать: