打开 PWA 时收到推送事件时不显示通知

Posted

技术标签:

【中文标题】打开 PWA 时收到推送事件时不显示通知【英文标题】:Not showing notifications when receiving a push event when the PWA is opened 【发布时间】:2018-08-07 10:23:05 【问题描述】:

这是关于在 Pogressive Web 应用程序中处理推送通知的最佳实践问题。

我目前正在开发一个包含聊天功能的网络应用程序。我添加了推送通知,这样用户每次收到新的聊天消息时都会收到通知(通过 NotificationsAPI)。这工作正常。但是即使用户打开了聊天窗口,也接收到大量的推送通知并不是一个好的用户体验。因此,如果用户打开了应用程序,我根本不想显示通知。

我知道不通知用户传入推送是一个关键主题,例如Chrome 希望我指定 userVisibleOnly 标志。这是不显示通知的有效例外,还是您认为我真的需要在每次推送时都显示通知?如果是这样,我该如何处理我的问题?任何人都知道其他应用如何解决此问题?

【问题讨论】:

【参考方案1】:

补充:我可能会在 Chromiums 发布的文档之一中找到答案: https://docs.google.com/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit#

“每次 Service Worker 完成处理推送消息,但当前没有来自该源的通知是可见的,并且该源上没有打开和可见的页面,我们检查过去 10 次中是否有任何从这个来源收到的推送消息也没有在显示上留下通知(并且没有来自来源的页面打开和可见)。如果是这种情况,那么我们代表网站显示通知,以便他们用户可以理解它运行了。

[...]

*:(除了同源之外,它必须来自同一个浏览器配置文件;但是,它不需要成功加载,即错误页面计数,只要多功能框显示正确域)。”

据我了解,在同一设备上打开应用程序时允许不显示通知。

【讨论】:

以上是关于打开 PWA 时收到推送事件时不显示通知的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在后台时不显示推送通知

应用程序在后台时不显示推送通知

Firebase 云消息在超出窗口焦点时不显示通知

推送通知在应用程序运行时不起作用(活动)[重复]

android 如何实现后台时用通知栏显示有新的消息,当在前台时不显示通知

在前台时不显示通知