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

时间:2021-05-17 19:31:13

标签: android ios flutter push-notification onesignal

我正在使用 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

0 个答案:

没有答案
相关问题