我正在尝试检查是否满足Add To Home Screen的要求,并以此为基础触发2个安装覆盖。逻辑:是否满足showOverlayMet()
,如果不满足showOverlayNotMet()
。当符合条件时,Chrome会触发BeforeInstallPrompt事件,因此,我试图检测是否触发了该事件并根据该事件显示提示,但不幸的是,语句始终显示为触发。这是我当前的代码:
if ('beforeinstallprompt' in window) {
var installPromptEvent = void 0;
window.addEventListener('beforeinstallprompt', function (event) {
event.preventDefault();
installPromptEvent = event;
setTimeout(function () {
showOverlayMet();
}, 5000);
var btnAdd = document.getElementById('button-addtohome');
btnAdd.addEventListener('click', function () {
hideOverlayMet();
installPromptEvent.prompt();
installPromptEvent.userChoice.then(function (choice) {
if (choice.outcome === 'accepted') {
// User accepted the A2HS prompt
} else {
showOverlayMet();
}
installPromptEvent = null;
});
});
});
} else {
setTimeout(function() {
showOverlayNotMet();
}, 5000);
}