如何使用scheduleLocalNotification设置applicationIconBadgeNumber?

时间:2012-01-18 23:47:31

标签: objective-c ios cocoa-touch uilocalnotification

我在使用我的ios应用程序的计划本地通知设置图标徽章时遇到了一些困难。

我在加载应用程序后单击主屏幕10秒后会弹出本地通知。但是,应用程序图标徽章编号未设置。我使用以下代码。

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
NSDate *fireTime = [[NSDate date] addTimeInterval:10]; // adds 10 secs
localNotif.fireDate = fireTime;
localNotif.alertBody = @"New Message!";
localNotif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

我不明白为什么会弹出本地通知但是applicationIconBadgeNumber没有设置。我可以通过执行以下代码手动设置图标徽章编号。

[UIApplication sharedApplication].applicationIconBadgeNumber = 1;

3 个答案:

答案 0 :(得分:3)

你在模拟器中调试吗?模拟器上的问题相同但你的代码在我的iPhone上工作正常。

答案 1 :(得分:3)

您是否在申请所有徽章通知类型?

[[UIApplication sharedApplication]registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge]; 

另外,请检查您的通知设置是否已禁用徽章。

答案 2 :(得分:2)

以下是Swift中iOS 8+的代码......

let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert , UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: nil)
application.registerUserNotificationSettings(notificationSettings)