問題描述:最近在項(xiàng)目中集成了極光推送芜飘,接收通知后泪蔫,發(fā)現(xiàn)手機(jī)上的app圖標(biāo)右上角一直有個(gè)紅色的數(shù)字1無法清除堪簿,但是在代碼中已經(jīng)設(shè)置了使角標(biāo)清除的方法痊乾。
通過測(cè)試發(fā)現(xiàn),如果收到通知后點(diǎn)擊通知欄進(jìn)入app椭更,則角標(biāo)會(huì)清除符喝;
如果收到通知后直接點(diǎn)擊app圖標(biāo)或者設(shè)置方法使得接收通知后直接跳轉(zhuǎn)頁面進(jìn)入app,則角標(biāo)不會(huì)清除甜孤;
解決方法如下:
//程序在運(yùn)行時(shí)收到通知协饲,點(diǎn)擊通知欄進(jìn)入app
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[JPUSHService setBadge:0];
}
//程序在后臺(tái)時(shí)收到通知,點(diǎn)擊通知欄進(jìn)入app
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler {
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
[JPUSHService setBadge:0];
//點(diǎn)擊App圖標(biāo)缴川,使App從后臺(tái)恢復(fù)至前臺(tái)
- (void)applicationWillEnterForeground:(UIApplication *)application {
[application setApplicationIconBadgeNumber:0];
[application cancelAllLocalNotifications];
}
//按Home鍵使App進(jìn)入后臺(tái)
- (void)applicationDidEnterBackground:(UIApplication *)application{
[application setApplicationIconBadgeNumber:0];
[application cancelAllLocalNotifications];
}
注意:(1) [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
(2) [JPUSHService setBadge:0];/[application cancelAllLocalNotifications];
//清除所有通知這兩個(gè)方法要同時(shí)使用才能清除本地圖標(biāo)和遠(yuǎn)程的通知茉稠!