首页 > 解决方案 > 三星 Internet beforeinstallprompt event.userChoice 不工作

问题描述

我正在三星互联网上测试我使用 Angular 8 创建的 PWA,但在测试过程中,我发现我的自定义 PWA 横幅即使在安装完成后也没有被关闭。这是我用来处理 PWA 安装的代码。

window.addEventListener('beforeinstallprompt', (e) => {
   e.preventDefault();
   // save it to a variable to be called later
   this.deferredAlert = e;
   // custom code for PWA banner
});

// When needed I call the prompt() function and listen for user choice

this.deferredAlert.prompt(); 
this.deferredAlert.userChoice
   .then((choiceResult) => {
       // cleanup for custom banner
       console.log(choiceResult);
   })
   .catch(console.error);

此方法在 chrome 中运行良好。调试时我发现 userChoice 承诺没有返回任何数据。有没有办法让它在三星互联网上运行?

现在我能想到的唯一解决方案是使用 userAgent 检查三星互联网浏览器,然后在单击安装按钮时清理自定义横幅。但是如果用户单击取消而不是安装,则此实现不起作用。

标签: javascriptgoogle-chromeprogressive-web-appssamsung-internet

解决方案


推荐阅读