Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何删除已发送的推送通知?_Android_Ios_Push Notification_Onesignal_Quasar Framework - Fatal编程技术网

Android 如何删除已发送的推送通知?

Android 如何删除已发送的推送通知?,android,ios,push-notification,onesignal,quasar-framework,Android,Ios,Push Notification,Onesignal,Quasar Framework,情况: 我需要向某个用户组发送推送通知 当此组的第一个用户执行某个操作(单击通知内的按钮)时,我需要从所有其他用户的设备中删除通知 注意事项: 我使用的是混合框架和服务器API。 我使用php cURL请求发送推送通知 作为设备操作系统,我现在专注于安卓系统,但理想情况下,我正在寻找一种在安卓系统和IOS系统中实现这一点的方法 尝试: 此时,我将通知id作为有效负载发送通知。 当用户单击该按钮时,它会触发一个回调,将通知id发送回服务器。在这里之前没问题 我有需要从其他设备中删除的通知的id 但

情况:

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

注意事项:

我使用的是混合框架和服务器API。 我使用php cURL请求发送推送通知

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

尝试:

此时,我将通知id作为有效负载发送通知。 当用户单击该按钮时,它会触发一个回调,将通知id发送回服务器。在这里之前没问题

我有需要从其他设备中删除的通知的id

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

OneSignal具有,但它仅适用于计划通知(未发送)。如果我尝试将该方法应用于已发送的通知,则会出现错误:
通知已发送给所有收件人

问题:

发送推送通知后,是否可以从服务器中删除推送通知

如果没有,您有什么建议作为实现该行为的替代方案?

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

场景

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

-第一个用户将点击Notification Try,然后通过API调用通知ID通知服务器。(您可以将逻辑放在服务器端,如果用户第一次通知您通知id,您可以向所有用户发送静默通知,其中尚未看到通知的左用户可以删除所有已传递和挂起的通知,代码行如下)

只需检查通知的类型。 若通知是静默的,并且通知类型是从另一个用户设备删除通知,只需在DidReceiverEmortNotification应用程序委托方法中编写以下代码

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.

我不熟悉“oneSignal”,但如果可以发送
自定义
字段,您可以在通知单击时使用用户回调,在服务器端处理并发送推送(比方说)
close
标记,然后在
firebasemsagingservice
中使用
NotificationManager.clearAll()删除通知
谢谢回复!我将通知id作为有效负载与通知本身一起发送。我在用户单击按钮时实现了回调。但我不知道如何从服务器中删除通知。OneSignal有一个取消方法:-,但它仅适用于计划通知(尚未发送)。谢谢@Sumit。无声通知是一个很好的建议。我看到oneSignal允许他们:我将对此进行研究!