iOS 通知栏怎么实现只删除点击的通知消息

前言:

1.这个需求的意思是:假如用户接到3条通知消息,用户点击App图标进入应用程序,通知栏上面还显示3条推送,如点击推送栏进入App消息只消息被点击的,其他未被点击的还在,接下来给大家一一说明:
方案1:(建议使用)

第一种方案比较简单:就是推送的时候 badge 这个字段写死为 0 就可以了, 还有一点需要注意的就是程序代码中不要对角标进行处理设置如下:

//不要出现类似代码
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
或
[JPUSHService setBadge:0];
方案2:

这中方案是后台推送的时候badge +1 时候的操作,我们用代码进行设置!

//
- (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 通知栏怎么实现只删除点击的通知消息)