如何解决是否可以在 Flutter 上过滤某些推送通知?
我正在使用 Onesignal 进行推送通知。我想过滤一些推送通知并根据条件对用户隐藏。
我的应用中有两个登录,用户可以同时登录。我有不同的表来保存用户数据,包括 Onesignal 用户 ID。我可以发送包含其他数据的通知,并根据此数据导航到屏幕,例如 "type`:"a"
或 "type:"b
。
用户可以离线注销,所以我使用 workmanager 从数据库中删除 Onesignal 用户 ID 并阻止发送通知。
我的问题是,当用户在离线状态下注销两次登录之一时,Onesignal 用户 ID 不会被删除,直到用户在线。在这段时间内,我的服务器可以向将被删除的 Onesignal 用户 ID 发送通知。所以当用户在线时,也会收到这些通知。
我尝试了 Onesignal.shared.setSubscription(false)
,但此功能阻止接收所有通知,但我只想接收“类型 b”通知。
是否有任何处理程序可以执行以下操作?或者您对此有什么建议吗?
Onesignal.shared.setNotificationReceivedHandler((OSNotification notification) {
var additionalData = openedResult.notification.payload.additionalData;
if(additionalData["type"] == "a" && !isTypeALogin){
//Dont Show This Notification
}
});
更新:
Onesignal Flutter SDK 3 Beta 有 setNotificationWillShowInForegroundHandler
可以做到这一点。所以我决定只更改在线注销。 Related github issue
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。