對(duì)于消息推送并不陌生,相信大家經(jīng)常用到。這里涉及到三個(gè)端:app服務(wù)器牙丽,apns(蘋果推送服務(wù)器),app客戶端兔魂。首先服務(wù)器把消息->apns 通過bundle id查找安裝該app的設(shè)備devicetoken 發(fā)送到設(shè)備-> 設(shè)備接收到通知顯示烤芦。
下面我們把重點(diǎn)放在app顯示邏輯介紹中。我們理想的情況應(yīng)該是這樣的:
收到推送消息:用戶讀消息析校,桌面紅點(diǎn)-1构罗,不讀消息,紅點(diǎn)+1.在退出app時(shí)不管有無未讀消息桌面紅點(diǎn)清空智玻,通知欄顯示未讀的消息遂唧。遇到的問題:當(dāng)appdelegate.applicationIconBadgeNumber=0時(shí),紅點(diǎn)消失尚困,可通知欄消息同樣清空蠢箩。當(dāng)然這不是我們期望的。
- 解決方法
UILocalNotification *clearEpisodeNotification = [[UILocalNotification alloc] init]; clearEpisodeNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:(1*1)]; clearEpisodeNotification.timeZone = [NSTimeZone defaultTimeZone]; clearEpisodeNotification.applicationIconBadgeNumber = -1; [[UIApplication sharedApplication] scheduleLocalNotification:clearEpisodeNotification];