37

私たちのアプリは APNS を使用してプッシュ通知を受信します。しかし、クライアントは、一部のデバイスが通知を受信して​​いないと主張し、通知が 100% 確実に配信されるように「しなければならない」と主張しています。しかし、APNS は 100% 信頼できるわけではなく、通知が配信されない場合があることをどこかで読んだことがあります。

私は現在、APNS をいつでも受信できるようにする方法についてパニックに陥っています。APNS が配信されない可能性があるケース(デバイスがオフラインの可能性がある)を読みました。しかし、私たちのテストでは、デバイスがオンライン (Wifi または 3G) であっても、APNS が配信されないことがありました。

APNS が配信されない可能性がある特定のケースはありますか? または、すべての通知を確実に受け取るためにコードを使用して私たち (開発者) ができることはありますか? 私がコードで行ったのは、アプリをリモート通知に登録し、didRegisterForRemoteNotificationsWithDeviceToken を書き込んでから、デバイス トークンをサーバーにスローすることだけです。

すべてのデバイスがAPNSを受信して​​いない場合、クライアントはほとんど私たちを殺します!

4

4 に答える 4

46
  1. APNS は Apple サーバーに基づいており、Apple はメッセージ配信の成功を保証しません。
  2. 通知が届いている間にアプリが開いている (つまり、ユーザーがアプリを使用している) 場合、iOS は通知メッセージを表示しないため、それを処理する必要があります。
  3. 通知は、アプリがバックグラウンドまたは強制終了された場合にのみ表示されます。
  4. また、サーバー側にフィードバック サービスを実装します。古い不要なトークン (アプリを削除したか、設定で通知を無効にしたユーザー) を取り除くのに役立ちます。
  5. APNS は 1 つのメッセージ/デバイスのみをキャッシュするため (デバイスがオフラインの場合)、短期間にデバイスに送信する通知の数が多すぎないようにしてください。そのため、デバイスがオンラインになったときにメッセージを配信できます。ただし、メッセージがキャッシュされている期間はわかりません。

または、プッシャーを実装するだけです... http://pusher.com

于 2012-12-16T03:35:33.917 に答える
8

私たちは同じ問題に直面しています。誰もが言ったように、APNS はベスト エフォートサービスであるため、すべての通知が確実に配信されるとは限りませんが、どの通知が受信されたかを確認することはできます。これが私たちがやろうとしていることです。私たちはバックエンドに各通知キューを登録しモバイルアプリは受信した各通知を報告します。次に、通知が受信されるまでの最大待機時間を設定します。レポートが返されない場合は、再試行します。

誰かの役に立てば幸いです(2年後でも)

于 2014-11-28T19:18:33.990 に答える
4

Apple Docs には、100% 保証されているわけではなく、そのように使用されるべきではないことも明確に記載されています。「ベスト エフォート」で送信されます。

于 2013-07-12T04:40:34.663 に答える