8

この質問はおそらく、Duplicate Apple APNS push notifications?と同じです。、しかし、それは答えが得られなかったので、もう少し情報があるので、もう一度尋ねてみます.

問題を再現する手順:

  • 通知をアラートとして表示するように通知センターを設定すると、問題がより明確になります。
  • アプリがフォアグラウンドで実行されていないことを確認します。
  • 3 つの同一のプッシュ通知を立て続けに送信します。
  • メッセージが電話に届くまで待ちます。アラートを 3 回無視する必要があります。
  • ここで、以前のものとは異なる通知をもう 1 つ送信します。
  • これで最後の通知が表示されますが、以前の通知の 1 つがもう一度表示されます。これが問題です。
  • 単一の通知を送信し続けると、最初の 3 つの通知のうちの 1 つが表示されるべきではないときに表示され続けます。

これらの手順に従うビデオは、問題を明確に示しています。

http://youtu.be/TSqt8S4FY6w

上記のリンクされた質問で Remy Gale が行ったように、通知が正しい方法で、通知ごとに 1 回だけ送信されるようにしました。また、sandbox-apn と production-apn の両方でこれをテストしましたが、どちらもまったく同じように動作します。

app-badge を 0 に設定すると、この問題は解消され、通知センターからすべての通知が削除されます。通知を手動で削除しても役に立ちません。

UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 0;

しかし、それは解決策ではありません。

すべての通知に固有のテキストが含まれている場合、問題は発生しません。アラート テキストに GUID を追加すると、問題が解消されます。ただし、カスタム プロパティまたはローカライズされた引数として apns-payload に追加しても役に立たないため、これも解決策ではありません。

これは、ライブ アプリを使用する本番環境ではほとんど発生しませんが、発生する可能性があり、発生した場合、ユーザーにとっては非常に迷惑です。

なぜこれが起こるのか誰か知っていますか?誰かが実行可能な解決策を持っていますか?

4

2 に答える 2

0

これは、プッシュ通知を APNs に送信する際にサーバーが選択するタイムスタンプに問題がある可能性があります。最新のタイムスタンプのみを選択します。

于 2015-06-16T09:34:51.190 に答える