Я повторяю локальное уведомление в одно и то же время каждый день.Проверьте, разрешены ли локальные уведомления
Сейчас все работает нормально, за исключением случаев, когда Уведомления отключены, а затем снова включены, происходит уведомление об ошибках со дня, когда оно было выключено.
Есть ли лучший способ проверить, выключен ли он, а затем обратно, и очистить все старые уведомления?
Спасибо!
- (void)viewDidLoad {
[super viewDidLoad];
UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
// before we create any new ones, cancel all existing notifications
[[UIApplication sharedApplication]cancelAllLocalNotifications];
UILocalNotification* localNotification = [[UILocalNotification alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comp = [cal components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:[NSDate date]];
comp.hour = 19; // 19 = 7PM
comp.minute = 45; // 7:45 PM
comp.second = 01; // 7:45:01 PM
localNotification.fireDate = [cal dateFromComponents:comp];
localNotification.alertBody = @"Local Notification in iOS8";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.repeatInterval = NSCalendarUnitDay;
// this will schedule the notification to fire at the fire date
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
// this will fire the notification right away, it will still also fire at the date we set
[[UIApplication sharedApplication] presentLocalNotificationNow:localNotification];
}
Спасибо за ответ! Просто поставьте эту строку кода перед '[[UIApplication sharedApplication] presentLocalNotificationNow: localNotification];' и это делает трюк? Просто проверяя, чтобы я ничего не пропускал. – SRMR
Я обновил свой ответ, чтобы включить полный метод. – Dash
Это проверяет, разрешены ли уведомления, прежде чем беспокоиться о его создании и расписании. – Dash