检查是否符合渐进式Web App标准

时间:2018-11-11 11:50:50

标签: javascript google-chrome progressive-web-apps

我正在尝试检查是否满足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);       
}

0 个答案:

没有答案