2016-11-23 36 views
-1

我正在設置0個應用程序圖標徽章號,如下面的開放應用程序。增加iOS推送通知增加所有時間,甚至零設置?

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

但由於服務器在應用程序處於死亡狀態後臺時發送增量,它不會再以零開始。

說的是,如果它是2,那麼將是3,而不是在每次推動時都是4。如果我打開App並將其設置爲ZERO,然後返回,則iCON上不顯示任何內容,但在服務器發送時,它將從5開始。

總之,它保留了現有的計數器。

我該如何解決這個問題。我有iOS 10.1和Xcode 8.1

謝謝。

+0

您可能正在從推送通知有效負載中獲取應用程序徽章號。例如,如果你有以下的有效載荷: { 「APS」:{ 「警告」:「你有你的電子郵件。」 「徽章」:9 } } 這將是9,即使你設置在應用程序中退出徽章零。 –

+0

完全不同意你。我沒有得到任何徽章:9從服務器,它的增量,另一個策略。 –

+0

你能顯示你的推送通知有效載荷嗎? –

回答

0

來自服務器的有效負載已經有一個將設置的徽章號碼,所以無論以前是什麼。只有你在有效載荷中獲得的徽章號碼很重要。

您需要做的是將一些自定義邏輯添加到您撥打[UIApplication sharedApplication].applicationIconBadgeNumber = 0;的地方,以便您可以在每次激活應用程序時重置服務器徽章計數。

+0

我正在做didFinishLaunch中的0。它顯示在主圖標上,意味着隱藏徽章,但是它來自服務器,它在0之前再次顯示相同的計數+1。 –

+0

您將本地徽章編號設置爲0,但**服務器**不重置計數 - 在接下來推動你獲得本地重置後你得到的badgeNumber:count + 1的有效載荷,這就是爲什麼它被設置爲直接計數+1。你需要的是在服務器上以及在應用程序中重置該計數器。 –

+0

服務器永遠不會計數+ 1,它只表示增量,不計數,無徽章編號,其簡單增量。我在家,明天從辦公室給我送貨。 –