0

我正在为 iOS 10 和 Xcode 8 Beta 2使用UNUsernotification

我为 iOS 设备中的本地通知编写了以下代码:

-(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");
            }
        }];
    }

我想设置三个不同或多个未来日期,并希望在定义的日期提醒事件。当我在同一日期将上述代码用于 3 个不同的时间时

例如 (2016-12-29 18:05 ,2016-12-29 18:10, 2016-12-29 18:15)只有最后一个发出通知。

我在AppDelegate文件中注册位置通知。


        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);
            }
        }

4

1 回答 1

0

我试过我自己,我试过了。

我可以在 iOS 10 中取消本地通知。

这是发布的代码。

如何在iphone中取消本地通知

于 2017-01-17T14:00:50.590 回答