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

リアルタイムデータベースのnotifications/$autoIdを参照するautoIdをとるエンドポイントをPHPサーバーに作成しました。通知の送信者は通知データをデータベースに書き込み、成功した場合はPOST要求をhttp://myserver.com/notifications/$autoId/sendに送信します。

これは認証なしのようですが、通知IDを作成したユーザーとそれを受け取ったユーザーとは別に通知IDが送信されることを誰も知らないでしょう。サーバー側では、メッセージがFCMを使用して正常に送信されると、{"sent": true}を設定して複数回送信されないようにすることができます。ユーザーが通知を受信すると、{"received": true}と設定されます。

{ 
    "notifications": { 
     "$autoId": { 
      "sent": false, 
      "received": "false", 
      "userInfo": { 
       "notificationId": "$autoId", 
       "toId": "$toUid", 
       "fromId": "$fromUid" 
      } 
     } 
    } 
} 
関連する問題