这是关于在 Pogressive Web Apps 中处理推送通知的最佳实践问题。
我目前正在开发一个包含聊天功能的 Web 应用程序。我添加了推送通知,以便用户每次收到新的聊天消息时都会收到通知(通过通知API(。这工作正常。但是,即使用户打开了聊天窗口,接收大量推送通知也不是一个好的用户体验。因此,如果用户打开了应用程序,我希望根本不显示通知。
我知道不通知用户传入推送是一个关键话题,例如 Chrome 希望我指定userVisibleOnly
标志。这是不显示通知的有效例外,还是您认为我真的需要在每次推送传入时显示通知?如果是这样,我该如何处理我的问题?有人知道其他应用程序如何解决此问题吗?
补充:我可能会在Chromiums发布的一个文档中找到答案: https://docs.google.com/document/d/13VxFdLJbMwxHrvnpDm8RXnU41W2ZlcP0mdWWe9zXQT8/edit#
"每次服务工作者完成处理推送消息,但当前没有来自此源的通知可见,并且该源上没有打开和可见的页面时,我们都会检查从该源收到的过去 10 条推送消息中的任何一条是否也没有显示通知(并且没有来自源的页面打开和可见(。如果是这种情况,那么我们会代表站点显示通知,以便他们的用户可以了解它已运行。
[...]
*:(除了同源之外,它必须来自同一浏览器配置文件;但是,只要多功能框显示正确的域,就不需要成功加载,即错误页面计数(。
据我了解,在同一设备上打开应用程序时,允许不显示通知。