我们是否需要为浏览器添加以下事件以显示是否添加到屏幕图标。
window.addEventListener('beforeinstallprompt', (e) => {
/* Prevent Chrome 67 and earlier from automatically showing the prompt*/
e.preventDefault();
// Stash the event so it can be triggered later.
this.deferredPrompt = e;
btnAdd.style.display = 'block';
});
btnAdd.addEventListener('click', (e) => {
// hide our user interface that shows our A2HS button
btnAdd.style.display = 'none';
// Show the prompt
this.deferredPrompt.prompt();
// Wait for the user to respond to the prompt
this.deferredPrompt.userChoice
.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS prompt');
} else {
console.log('User dismissed the A2HS prompt');
}
this.deferredPrompt = null;
});
});
我问这个问题是为了清楚怀疑,因为从版本68+开始 以下来自https://developers.google.com/web/fundamentals/app-install-banners/的说明 注意:从Chrome 68开始(2018年6月初测试版),Chrome不会自动显示添加到主屏幕标题,而是可以通过调用beforeinstallprompt上的prompt()来显示它 用户手势的事件。有关完整详细信息,请参阅添加到主屏幕行为的更新。
此外,在Mac OS上,我无法使用开发人员工具删除/取消注册添加到应用程序的图标。 提前谢谢。
答案 0 :(得分:0)
在当前版本的Chrome(在Android上测试)中可以正常运行
Chrome Beta(68)仍在进行中 有一个新的/临时迷你信息栏,目前忽略preventDefault()
从这页开始
https://developers.google.com/web/updates/2018/06/a2hs-updates
"当网站符合添加到主屏幕标准时,无论您是否在beforeinstallprompt事件上阻止了默认(),都会显示迷你信息栏。"