2016-12-28 18 views
0

が動作していない私は、iOSデバイスでローカル通知のコードの下に書いた:私はiOSの10とXcode 8ベータ版2</p> <p>を<strong>UNUsernotification</strong>を使用しています

-(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 3つの異なる日付または複数の将来の日付を設定し、定義された日付にイベントを通知したい 同じ日付に上記のコードを3回使用したとき

(2016年12月29日18時05分、2016年12月29日午後06時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); 
      } 
     } 

+0

あなたはそうあなただけの最後の通知を参照して、各通知のための異なる要求識別子を必要としています。 requestWithIdentifier:@ "firedate"を使用しているので、各通知の各要求識別子に対して同じ文字列 "firedate"が使用されています。希望が助けてくれる! –

+0

さて、私は試してみます。 –

答えて

0

私は私の自己を試してみましたが、私はそれを試してみました。

私は、コードをポストされ、ここで

iOSの10にローカル通知をキャンセルすることができています。

how to cancel a local notification in iphone

関連する問題