如何记住在要求安装PWA时在“ beforeinstallprompt”事件中用户的否决决定?

时间:2019-02-18 14:21:16

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

我刚刚进行了更改,以使Chrome将我的Web应用程序识别为渐进式Web应用程序。我遵循了Chrome开发者网站上的官方教程:

https://developers.google.com/web/fundamentals/app-install-banners/?hl=es

所以我有

var deferredPrompt;
window.addEventListener('beforeinstallprompt', function(e) {
// Prevent Chrome 67 and earlier from automatically showing the prompt
if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera 
Mini/i.test(navigator.userAgent)) {
    e.preventDefault();
    $("#modalInstallPWA").modal('show');
} // Stash the event so it can be triggered later.


deferredPrompt = e;
}); // Installation must be done by a user gesture! Here, the button click

$("#btn-install-pwa").on('click', function() {
// Show the prompt
deferredPrompt.prompt(); // Wait for the user to respond to the prompt

deferredPrompt.userChoice.then(function(choiceResult) {
    console.log(choiceResult.outcome);

    if (choiceResult.outcome === 'accepted') {
        console.log('User accepted the A2HS prompt');
    } else {
        console.log('User dismissed the A2HS prompt');
    }

    deferredPrompt = null;
});
});

因此,我想记住用户的决定,以使Chrome浏览器不会一再要求用户安装PWA。当用户决定安装PWA时,此方法效果很好,但在用户决定不安装PWA时,效果不佳。

我曾想通过使用cookie来做到这一点,但我想知道是否可能有内置功能或更简单的方法来实现这一目标。

0 个答案:

没有答案