この質問はおそらく、Duplicate Apple APNS push notifications?と同じです。、しかし、それは答えが得られなかったので、もう少し情報があるので、もう一度尋ねてみます.
問題を再現する手順:
- 通知をアラートとして表示するように通知センターを設定すると、問題がより明確になります。
- アプリがフォアグラウンドで実行されていないことを確認します。
- 3 つの同一のプッシュ通知を立て続けに送信します。
- メッセージが電話に届くまで待ちます。アラートを 3 回無視する必要があります。
- ここで、以前のものとは異なる通知をもう 1 つ送信します。
- これで最後の通知が表示されますが、以前の通知の 1 つがもう一度表示されます。これが問題です。
- 単一の通知を送信し続けると、最初の 3 つの通知のうちの 1 つが表示されるべきではないときに表示され続けます。
これらの手順に従うビデオは、問題を明確に示しています。
上記のリンクされた質問で Remy Gale が行ったように、通知が正しい方法で、通知ごとに 1 回だけ送信されるようにしました。また、sandbox-apn と production-apn の両方でこれをテストしましたが、どちらもまったく同じように動作します。
app-badge を 0 に設定すると、この問題は解消され、通知センターからすべての通知が削除されます。通知を手動で削除しても役に立ちません。
UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 0;
しかし、それは解決策ではありません。
すべての通知に固有のテキストが含まれている場合、問題は発生しません。アラート テキストに GUID を追加すると、問題が解消されます。ただし、カスタム プロパティまたはローカライズされた引数として apns-payload に追加しても役に立たないため、これも解決策ではありません。
これは、ライブ アプリを使用する本番環境ではほとんど発生しませんが、発生する可能性があり、発生した場合、ユーザーにとっては非常に迷惑です。
なぜこれが起こるのか誰か知っていますか?誰かが実行可能な解決策を持っていますか?