问题
I'd used
[UIApplication sharedApplication].applicationIconBadgeNumber = 5;
for setting application badge number. It's not working in ios 9 alone.
Can anyone suggest why?
I tried,
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];
回答1:
Hi You need to register UIUserNotificationSettings like this
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
[UIApplication sharedApplication].applicationIconBadgeNumber = 1;
回答2:
Registering for Notification Types in iOS
In iOS 8 and later, apps that use either local or remote notifications must register the types of notifications they intend to deliver. The system then gives the user the ability to limit the types of notifications your app displays. The system does not badge icons, display alert messages, or play alert sounds if any of these notification types are not enabled for your app, even if they are specified in the notification payload. Link: Docs
@property(nonatomic) NSInteger applicationIconBadgeNumber; // set to 0 to hide. default is 0. In iOS 8.0 and later, your application must register for user notifications using -[UIApplication registerUserNotificationSettings:] before being able to set the icon badge.
So I think you must register badges for change number notification.
回答3:
It works perfectly like this:
[UIApplication sharedApplication].applicationIconBadgeNumber = 10;
I tried in Xcode 7.2, iOS 9.2, iPhone 6s Plus.
回答4:
Set it in you Appdelegate.m
File in didFinishLaunching
method...
application.applicationIconBadgeNumber = 5.
and change your current date to after 2 days and restart Your iPhone
.. and test again. It should be working fine.
来源:https://stackoverflow.com/questions/33339782/set-the-application-badge-number-in-ios-9