2013-08-06 65 views
8

此問題可能與Duplicate Apple APNS push notifications?相同,但由於該問題沒有得到答案,並且我有更多信息,因此我會再試一次。iOS上的重複推送通知

步驟來重現問題:

  • 設置通知中心顯示通知的警報,這將使問題更加明顯。
  • 確保該應用程序未在前臺運行。
  • 快速連續發送3個相同的推送通知。
  • 等到信息到達手機時,您現在必須關閉警報3次。
  • 現在再發送1條通知,與以前的通知不一致。
  • 您現在可以看到最後一條通知,但您還會看到之前的一條通知再次顯示。這就是問題。
  • 如果您繼續發送單個通知,前3箇中的其中一個會在不應該時彈出。

這裏是請按照下列步驟的視頻,這清楚地表明瞭問題:

http://youtu.be/TSqt8S4FY6w

我們就像雷米大風的確在鏈接的問題上面確信,我們的通知中發送正確的方式,並且每個通知只有一次。我們還用sandbox-apns和production-apns進行了測試,兩者表現完全一樣。

如果應用徽章設置爲0,問題就會消失,而這又會從通知中心移除所有通知。手動刪除通知不會有幫助。

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

但這不是一個解決方案。

如果所有通知都包含唯一文本,則不會出現該問題。向警報文本添加GUID將使問題消失。然而,將它作爲自定義屬性或作爲本地化參數添加到apns-payload中並不會有幫助,所以這也不是解決方案。

這可能很少發生在具有實時應用程序的生產環境中,但它可能發生,並且當它發生時,這對用戶來說真的很煩人!

有誰知道爲什麼會發生這種情況?有沒有人有一個可行的解決方案?

+0

由於pushnotifications是由os處理的,所以我沒有太多的辦法來解決這個問題。我會將此報告爲Apple的一個漏洞,並向他們提供測試應用程序和youtube電影。 – rckoenes

回答

7

Gmail的這個Google Group有一個用戶誰已經研究了一些錯誤,包括一個可能的解決方法的條目。根據條目,該錯誤在iOS 5中不存在,但在iOS 6中引入。

解決方法是簡單地將一個隨機數Zero-width non-joiner附加到標題以確保唯一性。

+0

我想這將不得不做 – TheQ

0

這可能是服務器在向APN發送推送通知時選擇的時間戳的問題。只選擇最新的時間戳。