Javascript 延迟Web安装横幅

Javascript 延迟Web安装横幅,javascript,progressive-web-apps,Javascript,Progressive Web Apps,据我所知,有可能推迟Web应用程序安装横幅,但我只能完全取消它 window.addEventListener('beforeinstallprompt', function(e) { console.log('beforeinstallprompt Event fired'); e.preventDefault(); return false; }); 一个使用案例是将提示延迟到页面生命周期的后期,例如,在用户执行操作或点击页面底部(表示他们正在与您的站点接触的内容)之后 如何延

据我所知,有可能推迟Web应用程序安装横幅,但我只能完全取消它

window.addEventListener('beforeinstallprompt', function(e) {
  console.log('beforeinstallprompt Event fired');
  e.preventDefault();
  return false;
});
一个使用案例是将提示延迟到页面生命周期的后期,例如,在用户执行操作或点击页面底部(表示他们正在与您的站点接触的内容)之后

如何延迟web应用标题?

如果有帮助,请尝试检查此项

下面是用于延迟提示的完整代码

var deferredPrompt;

window.addEventListener('beforeinstallprompt', function(e) {
  console.log('beforeinstallprompt Event fired');
  e.preventDefault();

  // Stash the event so it can be triggered later.
  deferredPrompt = e;

  return false;
});

btnSave.addEventListener('click', function() {
  if(deferredPrompt !== undefined) {
    // The user has had a postive interaction with our app and Chrome
    // has tried to prompt previously, so let's show the prompt.
    deferredPrompt.prompt();

    // Follow what the user has done with the prompt.
    deferredPrompt.userChoice.then(function(choiceResult) {

      console.log(choiceResult.outcome);

      if(choiceResult.outcome == 'dismissed') {
        console.log('User cancelled home screen install');
      }
      else {
        console.log('User added to home screen');
      }

      // We no longer need the prompt.  Clear it up.
      deferredPrompt = null;
    });
  }
});

有关更多信息,请查看此项。

我使用Chrome 76,无法与其他(旧)答案一起使用。我查看了Chrome java脚本调试器,发现需要使用以下内容:

var deferredPrompt;

$(window).on('beforeinstallprompt', function(e) {
    console.log('beforeinstallprompt Event fired');
    e.preventDefault();

    // Stash the event so it can be triggered later.
    deferredPrompt = e.originalEvent;

    return false;
});
*编辑:
只有在使用jquery注册事件时,才需要通过e.originalEvent获取事件。

是的,当用户单击自定义按钮时,该值变为
null
时,它应该是
if(delferredprompt)
当该值变为
null时,我尝试了相同的代码,但给我的错误是“页面必须在安装PromptEvent.prompt()之前调用以显示横幅。”我该怎么办?