我在用户swPush的项目中使用了angular。该通知工作正常,但即使在user1注销后仍获得推送通知。我不想将通知推送给已注销的用户。当user2登录到user1和user2都在同一设备上收到通知后,这会使用户感到困惑。我想限制用户仅在他们登录时才得到通知。我该如何做到这一点。有什么方法吗?
我已经尝试使用取消注册服务人员
navigator.serviceWorker.getRegistrations().then(function(registrations) {
for(let registration of registrations) {
registration.unregister()
}
})
但是使用此功能后,两个用户都没有收到通知。
感谢和问候
答案 0 :(得分:0)
您不应该取消注册Service Worker的注册,因为那样会取消所有的注册。取消注册Service Worker可以防止发生任何推送逻辑,因为Web推送是Service Worker之上的一层-您需要注册并激活Service Worker才能使用推送通知,对吗?
如果您只考虑“显示通知”,则有两种选择:
MIT License
中对其进行处理。如果您考虑隐私/安全的观点,那么选项2当然是错误的。如果仅隐藏/不显示注销用户的通知,则意味着您仍在从服务器发送通知。通知可以包括私人信息等。
因此,您确实应该争取第一名。这是实现此目标的正确方法。它不会从登出的用户那里泄漏任何信息,使用户的推送订阅保持独立,并节省带宽。