微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在 Flutter 上过滤某些推送通知?

如何解决是否可以在 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] 举报,一经查实,本站将立刻删除。