我目前正在开发一个允许用户订阅推送通知的网络应用程序。我们将订阅存储在映射到用户 ID 的数据库表中,当需要发送通知时,我们将查找用户的订阅并发送通知。
我一直在关注本指南:
https://developers.google.com/web/fundamentals/codelabs/push-notifications/
一切都很顺利,但总感觉有些“不对”。
在每个页面加载时,service worker 都会被注册,然后它会检查他们是否已经订阅,即使他们已经订阅,它也会调用 updateSubscriptionOnServer()
其中包含以下评论:
// TODO: Send subscription to application server
这实际上意味着每个页面加载都将尝试将相同的订阅写回数据库。显然我们将在应用程序中处理它,但这似乎并不理想。
使用 Web Push API,这是预期的方法吗?
非常感谢
最佳答案
是的,在每次加载页面时将订阅发送到服务器会很有用:
blocked
的权限至 granted
(或默认)在浏览器设置中,因此您要创建订阅并将其发送到服务器 410 Gone
)上述要点和性能之间的折衷可以是仅在给定页面(例如主页)上将订阅发送到服务器。
关于push-notification - 真的有必要在每次页面加载时更新订阅吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48670624/