0

我使用FCM(Firebase雲消息傳遞)來接收推送通知。我如何知道推送通知是否在iOS中傳遞?

一切都在爲我工作。

但是從我的服務器端,他們會不斷地發送通知到我的應用程序與時間身體一段時間。

現在我不得不只推送一次通知,當我從服務器獲取時間達到當前時間。

在當前時間之前和當前時間之後不應顯示通知。

我不知道如何做到這一點。

任何人都可以解釋是否有任何方法可以得到這個。

+4

這是不完全清楚你在問什麼,但推送通知是一個「盡力而爲」的服務;沒有跡象表明郵件已發送 – Paulw11

+0

您必須發送靜音通知。然後在需要時顯示本地通知。看看這裏:http://stackoverflow.com/questions/20741618/didreceiveremotenotificationfetchcompletionhandler-not-being-called-when-app-is –

+0

@DmytroShvecov如何區分無聲通知和推送通知? – Himanth

回答

1

您可以通過在服務器上執行cron作業來自定義通知到達時間表。

如果您使用任何API將通知推送到任何設備,只需在調用後獲取成功消息或傳遞的消息即可。

1

我在一個PHP服務器上創建了一個端點,它在我的實時數據庫中採用一個引用notifications/$autoId的autoId。通知的發件人將通知數據寫入數據庫,如果成功,則發送POST請求至http://myserver.com/notifications/$autoId/send

這似乎沒有認證,但是沒有人知道通知ID是從創建它的用戶和接收它的用戶分開發送的。在服務器端,當使用FCM成功發送消息時,我們可以設置{"sent": true}以防止它多次發送。當用戶收到通知時,我們設置{"received": true}

{ 
    "notifications": { 
     "$autoId": { 
      "sent": false, 
      "received": "false", 
      "userInfo": { 
       "notificationId": "$autoId", 
       "toId": "$toUid", 
       "fromId": "$fromUid" 
      } 
     } 
    } 
}