Ich muss eine lokale Benachrichtigung für alle 28 Tage generieren, dh der Benutzer wird an einem bestimmten Datum registrieren ich brauche eine lokale Benachrichtigung genau nach 28 Tagen von dieser Registrierung zu generieren Datum, und ab dann muss ich diese lokale Benachrichtigung für alle 28 Tage wiederholt generieren.Lokale Benachrichtigung generieren Für alle 28 Tage iOS 10 Objective-C
0
A
Antwort
0
prüfen Antwort von hier akzeptiert: How to schedule a local notification in iOS 10 (objective-c)
es versuchen. Sein veralteter aber funktionierender Code. Verwenden Sie es für Sie vor iOS 10.0:
//Get all previous noti.. NSLog(@"scheduled notifications: --%@----", [[UIApplication sharedApplication] scheduledLocalNotifications]); NSDate *now = [NSDate date]; now = [now dateByAddingTimeInterval:60*60*24*7]; //7 for 7th day of the week. NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [calendar setTimeZone:[NSTimeZone localTimeZone]]; NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSTimeZoneCalendarUnit fromDate:now]; NSDate *SetAlarmAt = [calendar dateFromComponents:components]; UILocalNotification *localNotification = [[UILocalNotification alloc] init]; localNotification.fireDate = SetAlarmAt; NSLog(@"FIRE DATE --%@----",[SetAlarmAt description]); localNotification.alertBody [email protected]"Alert"; localNotification.alertAction = [NSString stringWithFormat:@"My test for Weekly alarm"]; localNotification.userInfo = @{ @"alarmID":[NSString stringWithFormat:@"123"], @"SOUND_TYPE":[NSString stringWithFormat:@"hello.mp3"] }; localNotification.repeatInterval=0; //[NSCalendar currentCalendar]; [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
Für iOS 10.0 und höher: Jetzt versuchen mit UserNotifications Rahmen: Fügen Sie den Rahmen und importieren wie #import. In Appdelegate Didfinishluanch Methode.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (!error) { NSLog(@"request succeeded!"); [self testAlrt]; } }];
In Ihrem IBAction oder Verfahren, schreiben Sie es und Test:
NSDate *now = [NSDate date];
// NSLog(@"NSDate--before:%@",now);
now = [now dateByAddingTimeInterval:60*60*24*7];
NSLog(@"NSDate:%@",now);
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setTimeZone:[NSTimeZone localTimeZone]];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSTimeZoneCalendarUnit fromDate:now];
NSDate *todaySehri = [calendar dateFromComponents:components]; //unused
UNMutableNotificationContent *objNotificationContent = [[UNMutableNotificationContent alloc] init];
objNotificationContent.title = [NSString localizedUserNotificationStringForKey:@"Notification!" arguments:nil];
objNotificationContent.body = [NSString localizedUserNotificationStringForKey:@"This is local notification message!"
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:@"ten"
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");
}
}];
Verwandte Themen
- 1. Monat Berechne alle 28 Tage
- 2. Lokale Benachrichtigung für bestimmtes Datum wiederholen iOS 10
- 3. Swift: Lokale Benachrichtigung in Benutzerbenachrichtigung umwandeln IOS 10
- 4. Lokale Benachrichtigungen wiederholen iOS 10
- 5. Lokale Benachrichtigung wird nicht aufgerufen in IOS 10 + Swift 2.3
- 6. Wie aktualisiere ich die tägliche lokale Benachrichtigung in iOS 10?
- 7. Tägliche lokale Benachrichtigung unter iOS
- 8. xcode 8 und iOS 10 Lokale Benachrichtigungen
- 9. Wie man Benachrichtigungen für bestimmte Tage wie, 1 Tag, 3 Tage, 7 Tage und 28 Tage
- 10. iOS 10 Benachrichtigung Inhalt Erweiterung: mit NSURLSession?
- 11. iOS 10 - Wiederholte Benachrichtigungen alle "x" Minuten
- 12. Regex zum ersten 28 Tage des Monats
- 13. iOS Intervall Lokale Benachrichtigung mit unterschiedlichen Nachrichten
- 14. iOS Swift Lokale Benachrichtigung nicht "aufspringen"
- 15. Region basierte lokale Benachrichtigung
- 16. Lokale iOS-Benachrichtigung wird täglich erhöht
- 17. iOS Lokale Benachrichtigung - Rückruf bei im Hintergrund
- 18. Lokale Benachrichtigung in WatchKit
- 19. iOS Sound für lokale Benachrichtigung aus dem Verzeichnis
- 20. BigQuery SQL für 28-Tage-Gleitfenster-Aggregat (ohne 28 Zeilen SQL schreiben)
- 21. Titanium lokale Benachrichtigung
- 22. Benachrichtigung Lokalisierung funktioniert nicht in iOS 10
- 23. Verbergen iOS 10 Benachrichtigung auf Sperrbildschirm
- 24. Limit für lokale Benachrichtigungen (UNNotificationRequest) in iOS 10
- 25. Lokale Meldung erscheint nicht nach dem Upgrade von iOS 9.x auf iOS 10
- 26. Nicht 10 Benachrichtigung
- 27. Planen Sie die lokale Benachrichtigung in iOS/unregelmäßiges Zeitintervall
- 28. MYSQL Aktualisierungsabfrage Syntaxfehler 28-10-2016a
- 29. iOS mit Firebase-Benachrichtigung, alle nicht funktioniert
- 30. Media-Anhang crops Bild in IOS 10 Benachrichtigung
Dank Jamshed es krank versuchen, und lassen Sie –
weiß, dass ich das für heutigen Tag getan. Du multiplizierst einfach mit 28 und testest. Stellen Sie zunächst den Alarm ein, indem Sie ihn ausführen. Und ändern Sie später das Datum 28 und führen Sie die App erneut aus. Es sollte funktionieren. Mein Code arbeitet an meiner Live-App. –
Jamshed ich muss diese Benachrichtigung für alle 28 Tage wiederholt auslösen muss ich JA in Wiederholungen setzen in UNCalendarNotificationTrigger * trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents: Komponenten wiederholt: NO]; –