【亲测有效】iOS极光推送实现角标清0,通知栏未读消息不清空
注意:要想实现这个功能项目中千万不能调用:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
//极光推送 角标清0 未读消息不清空
//本地推送UILocalNotification的applicationIconBadgeNumber影响到角标的显示,不出对通知栏的消息造成影响
//3.UIApplication的applicationIconBadgeNumber属性既会影响角标的显示,又会影响通知栏通知的处理。
//1)当applicationIconBadgeNumber>0时,角标会随之变化,通知栏通知不变。
//2)当applicationIconBadgeNumber=0时,角标变为0不显示,通知栏通知清空。
//3)当applicationIconBadgeNumber<0时,角标变为0不显示,通知栏通知清空。
//所以要想不清除通知栏内容,极光就不能设置这个:[UIApplication sharedApplication].applicationIconBadgeNumber = 0;,极光的cleanBadgeNum方法也不能用。
-(void)applicationWillResignActive:(UIApplication *)application {
if ([UIApplication sharedApplication].applicationIconBadgeNumber) {
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 11.0) {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:-1];
} else {
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
// 设置通知的发送时间,单位秒
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:0.5];
//收到通知时App icon的角标
localNotification.applicationIconBadgeNumber = -1;
// 3.发送通知(🐽 : 根据项目需要使用)
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
}
}
[JPUSHService setBadge:0];
}
网友评论