Приведенная ниже функция отлично работает, когда пользователь устанавливает пакет pwa. Однако если они откажутся, то при следующем посещении сайта deferredPrompt.prompt();
выдаст исключение Uncaught (in promise) DOMException
, даже если deferredPrompt.prompt();
не определено.
Есть ли что-то, что мне нужно проверить в отношении ранее данного ответа пользователей?
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the prompt
//e.preventDefault();
let deferredPrompt;
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Show the prompt
deferredPrompt.prompt();
// Wait for the user to respond to the prompt
deferredPrompt.userChoice
.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS prompt');
} else {
console.log('User dismissed the A2HS prompt');
}
deferredPrompt = null;
});
});