仍然触发beforeinstallPromt事件添加到主屏幕在window.location中设置任何值后,提示不起作用

时间:2019-10-22 11:30:48

标签: javascript google-chrome dom

在window.location中设置任何值后,Google的“添加到主屏幕”功能不起作用。

到目前为止已经做了什么?

参考:web-fundamentals-app-install-banners

在此实施过程中,我正在捕获窗口的'beforeInstallPromptEvent',并在以后需要时使用它。

PFB的代码段相同:

window.addEventListener('beforeinstallprompt', (e) => {
  deferredPrompt = e;
  // Update UI notify the user they can add to home screen
  showInstallPromotion();
});


btnAdd.addEventListener('click', (e) => {
  // hide our user interface that shows our A2HS button
  btnAdd.style.display = 'none';
  // Show the prompt
  deferredPrompt.prompt();
  // Wait for the user to respond to the prompt
  deferredPrompt.userChoice
    .then((choiceResult) => {
      if (choiceResult.outcome === 'accepted') {
        console.log('User accepted the A2HS prompt');
      } else {
        console.log('User dismissed the A2HS prompt');
      }
      deferredPrompt = null;
    });
});

上面的代码在正常运行中可以正常运行,但是只要我在window.location中包含一些内容,然后转到安装在设备中的某些应用程序,它就会停止工作

将以下Truecaller功能代码与“添加到主屏幕”同时添加时,它将停止工作:

window.location='xxxxxsdk://some-url/';

我还尝试了其他选项来重定向到location.assign()之类的应用,但仍然存在相同的问题。

1 个答案:

答案 0 :(得分:0)

嗨)在安装应用程序后尝试将其放入:

window.addEventListener('appinstalled', function() {
  // window.location = ...
});

以下是文档:https://developer.mozilla.org/en-US/docs/Web/API/Window/appinstalled_event