Scheduling multiple Local Notifications in iOS 10 is not working

1.2k views Asked by At

I am using UNUsernotification for iOS 10 and Xcode 8 Beta 2

I wrote below code for Local Notification in iOS device:

-(void) localNotificationForiOS10:(NSDate *) _reminderDate{

        NSLog(@"_reminderDate %@",_reminderDate);

        NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

        [calendar setTimeZone:[NSTimeZone localTimeZone]];


        NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond|NSCalendarUnitTimeZone fromDate:_reminderDate];

        NSLog(@"NSDateComponents %@",components);



        UNMutableNotificationContent *objNotificationContent = [[UNMutableNotificationContent alloc] init];
        objNotificationContent.title = [NSString localizedUserNotificationStringForKey:@"Event Name!" arguments:nil];
        objNotificationContent.body = [NSString localizedUserNotificationStringForKey:@"You have event reminder"
                                                                            arguments:nil];
        objNotificationContent.sound = [UNNotificationSound defaultSound];

        /// 4. update application icon badge number
        objNotificationContent.badge = @([[UIApplication sharedApplication] applicationIconBadgeNumber] + 1);


        UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:NO];


        UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"firedate"
                                                                              content:objNotificationContent trigger:trigger];


        /// 3. schedule localNotification
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

        [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
            if (!error) {
                NSLog(@"Local Notification succeeded");
            }
            else {
                NSLog(@"Local Notification failed");
            }
        }];
    }

I want to set three different or multiple future dates and want reminder of event on defined dates. When I used the above code for 3 different time on same date

e.g. (2016-12-29 18:05 ,2016-12-29 18:10, 2016-12-29 18:15) than only last one gave notification.

I register Location notification in AppDelegate file.


        application.applicationIconBadgeNumber = 0;
        if ([[[UIDevice currentDevice] systemVersion] floatValue] > 10.0f) {
    #if XCODE_VERSION_GREATER_THAN_OR_EQUAL_TO_8
            /// schedule localNotification, the delegate must be set before the application returns from applicationDidFinishLaunching:.
            UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
            center.delegate = self;
    #endif
        } else {
            UILocalNotification *localNotifacation = [self getLocalNotificationFromLaunchOptions:launchOptions];
            if (localNotifacation) {
                NSString *title = localNotifacation.alertBody;

                NSLog(@"Add Title %@",title);
            }
        }

1

There are 1 answers

0
Anil Gupta On

I tried my self and I tried it.

I am able to cancel the Local Notification in iOS 10.

here is posted code.

how to cancel a local notification in iphone