2013-08-06 12 views
8

この質問はおそらくDuplicate Apple APNS push notifications?と同じですが、回答が得られなかったので、さらに情報がありましたので、再度尋ねます。問題を再現するiOS上の重複プッシュ通知

ステップ:アラートとして通知を表示する

  • セット通知センター、これは問題がより明白になります。
  • アプリがフォアグラウンドで実行されていないことを確認してください。
  • 3つの同一のプッシュ通知をすばやく連続して送信します。
  • メッセージが電話に到着するまで待ってから、アラートを3回却下する必要があります。
  • もう1つの通知を送信します。これは以前の通知と同じではありません。
  • 最後の通知が表示されますが、もう一度表示される通知の1つが表示されます。これが問題です。
  • 1つの通知を送信し続けると、最初の3つの通知のうち1つが表示されないようになっても、その通知は引き続き表示されます。

ここでは、問題を明確に示しており、次の手順に従いビデオです:

http://youtu.be/TSqt8S4FY6w

私たちはレミーゲイルは、上記の私たちの通知がで送られていることを確認しましたリンク質問にやったとして持っています正しい方法と、通知ごとに1回だけです。また、sandbox-apnsとproduction-apnsの両方でこれをテストしましたが、どちらもまったく同じように動作します。

app-badgeが0に設定されている場合は、通知センターからのすべての通知が削除されます。手動で通知を削除しても問題はありません。

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

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

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

これは実際にはライブアプリケーションを使用しているプロダクション環境ではほとんど起こりませんが、発生する可能性があります。その場合、ユーザーにとっては本当に面倒です!

これはなぜ起こるのですか?誰にも実行可能な解決策がありますか?

+0

プッシュノーティフィケーションはOSによって処理されるので、これを解決する方法はあまりありません。私はこれをAppleにバグとして報告し、テストアプリケーションとあなたのYouTubeムービーを提供します。 – rckoenes

答えて

7

GmailのGoogle Groupには、バグを少し調べたユーザーのエントリがあり、回避策があります。エントリによれば、バグはiOS 5には存在しませんが、iOS 6で導入されました。

一意性を保証するために回避するには、単にZero-width non-joinerの乱数を追加します。

+0

私はそうしなければならないと思う – TheQ

0

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