我正在三星互联网上测试我使用 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 检查三星互联网浏览器,然后在单击安装按钮时清理自定义横幅。但是如果用户单击取消而不是安装,则此实现不起作用。