簡體   English   中英

如何刪除已經發送的推送通知?

[英]How to remove push notifications that have already been sent?

情況:

我需要將推送通知發送給特定的用戶組。
當該組的第一個用戶執行特定操作時(單擊通知內的按鈕),我需要從所有其他用戶的設備中刪除該通知。

筆記:

我正在使用Quasar作為混合框架,並使用Laravel作為服務器API。 我使用oneSignal發送帶有php cURL請求的推送通知。

作為設備操作系統,我現在將重點放在Android上,但理想情況下,我正在尋找一種在Android和IOS上都實現此目標的方法。

嘗試:

目前,我發送帶有notification_id作為有效內容的通知。 當用戶單擊該按鈕時,它將觸發一個回調,該回調將notification_id發送回服務器。 到這里為止沒有問題。

我有需要從其他設備刪除的通知的ID。

但是現在我不知道如何從服務器中刪除它。

OneSignal具有cancel方法 ,但它僅適用於計划的通知(未發送)。 如果我嘗試將該方法應用於已發送的通知,則會出現錯誤: 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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM