gpt4 book ai didi

android - 如何删除已经发送的推送通知?

转载 作者:行者123 更新时间:2023-11-29 18:37:09 25 4
gpt4 key购买 nike

情况:

我需要向特定的用户组发送推送通知。
当该组的第一个用户执行某个操作(单击通知内的按钮)时,我需要从所有其他用户的设备上删除该通知。

注意事项:

我正在使用 Quasar作为混合框架和Laravel用于服务器 API。我用 oneSignal使用 php cURL 请求发送推送通知。

作为设备操作系统,我现在专注于 Android,但理想情况下,我正在寻找一种在 Android 和 IOS 中实现这一目标的方法。

尝试:

目前,我发送通知时将 notification_id 作为有效负载。当用户点击按钮时,它会触发一个回调,将 notification_id 发送回服务器。直到这里没问题。

我有需要从其他设备上删除的通知的 ID。

但现在我不知道如何从服务器中删除它。

OneSignal 有一个 cancel method ,但它仅适用于预定通知(未发送)。如果我尝试将该方法应用于已发送的通知,则会出现错误:Notification has already been sent to all recipients

问题:

推送通知发送后是否可以从服务器上删除?
如果不是,您有什么建议作为实现该行为的替代方案?

最佳答案

嘿,请检查这些步骤,也许它会对你的 iOS 有帮助。

场景

-服务器会向某组用户发送通知

-第一个用户将点击通知尝试,之后只需通过 API 调用通知服务器通知 ID。 (您可以将逻辑放在服务器端,如果用户第一次通知您通知 ID,您可以向所有用户发送静默通知,其中尚未看到通知的左侧用户可以使用以下行删除所有已发送和待处理的通知的代码)。

只需检查通知类型。如果通知是无声的并且通知类型是为了从另一个用户设备删除通知,只需在 didReciveRemortNotification APP 委托(delegate)方法中编写以下代码即可。

application.applicationIconBadgeNumber = 0
// For Clear Badge Counts
let center = UNUserNotificationCenter.current()
center.removeAllDeliveredNotifications()
// To remove all delivered notifications
center.removeAllPendingNotificationRequests()
// To remove all pending notifications which are not delivered yet but scheduled.

关于android - 如何删除已经发送的推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53817182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com