iOS极光推送实现角标清0,通知栏未读消息不清空

【亲测有效】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];
}

你可能感兴趣的:(iOS极光推送实现角标清0,通知栏未读消息不清空)