Проверьте, соответствуют ли критерии Progressive Web App - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь проверить, соблюдены ли требования Добавить на главный экран , и запустить 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);       
}
...