现状:
我需要将推送通知发送给特定的用户组。
当该组的第一个用户执行特定操作时(单击通知内的按钮),我需要从所有其他用户的设备中删除该通知。
注意:
我正在使用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有帮助。
场景
-服务器将向特定用户组发送通知
-第一个用户将点击Notification Try,然后通过API调用通知ID通知服务器。 (您可以将逻辑放在服务器端,因为如果用户第一次通知您通知ID,您可以向所有用户发送静默通知,而尚未看到该通知的左用户可以删除下面一行中的所有已传递和待处理的通知代码)。
只需检查通知类型。
如果通知是静默的且通知类型为要从其他用户设备删除通知,则只需在didReciveRemortNotification APP委托方法中编写以下代码。
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.