Clear applicationIconBadgeNumber without removing notifications not working

后端 未结 2 1283
借酒劲吻你
借酒劲吻你 2021-01-12 01:15

I\'ve read in a few posts (like this one https://forums.developer.apple.com/thread/7598) that setting

    application.applicationIconBadgeNumber = -1


        
相关标签:
2条回答
  • 2021-01-12 01:55

    Setting application badge to -1 indirectly with a empty local notification worked for me, but its a hack to persist notifications in tray while clearing application badge count.

    if(badgeCount == 0) {
       //set application badge indirectly with UILocalNotification
       UILocalNotification *ln = [[UILocalNotification alloc]init];
       ln.applicationIconBadgeNumber = -1;
       [[UIApplication sharedApplication] presentLocalNotificationNow:ln];
    }
    else {
       [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeCount];
    }
    

    Swift Version

    if badgeCount == 0 {
        //set application badge indirectly with UILocalNotification
        var ln = UILocalNotification()
        ln.applicationIconBadgeNumber = -1
        UIApplication.sharedApplication().presentLocalNotificationNow(ln)
    }
    else {
        UIApplication.sharedApplication().applicationIconBadgeNumber = badgeCount
    }
    

    Approach tested on iOS 9 and 10.

    0 讨论(0)
  • 2021-01-12 02:03
    UIApplication.sharedApplication.applicationIconBadgeNumber = -1;
    

    I have tested it in iOS 12.2 and it's working fine for me with remote notification.

    It is clearing badge count by keeping received remote notification in notification centre.

    Code snippet for reference:

    - (void)applicationDidBecomeActive:(UIApplication *)application {
        UIApplication.sharedApplication.applicationIconBadgeNumber = -1;
    }
    
    0 讨论(0)
提交回复
热议问题