Ich schreibe eine Anwendung und möchte lokale Benachrichtigungen einschließen. Ich möchte, dass die Benachrichtigung zu einem festgelegten Zeitpunkt übermittelt wird und jeden Tag wiederholt wird.Lokale Benachrichtigungen liefern mehrere Male statt nur einer
Ich programmierte dies in meiner Anwendung, und es benachrichtigt den Benutzer. Anstatt dass der Benutzer jedoch jeden Tag einmal zur festgelegten Zeit benachrichtigt wird, sendet die Anwendung dem Benutzer 13+ Benachrichtigungen zu dieser festgelegten Zeit. Die Anzahl der Benachrichtigungen erhöht sich nur jeden Tag.
Wie behebe ich dieses Problem? Ich möchte nur, dass die Benachrichtigung den Benutzer nur einmal täglich benachrichtigt.
Hier ist mein Code, den ich verwendet habe. Es wird in Did Finish Launching mit Optionen des App-Delegaten festgelegt.
let notificationSettings = UIUserNotificationSettings(forTypes: [.Badge, .Alert, .Sound], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings)
let title: String = "Read Today's Pulse Habit!"
let calendar = NSCalendar.currentCalendar()
let calendarComponents = NSDateComponents()
calendarComponents.hour = 15
calendarComponents.minute = 30
calendarComponents.second = 0
calendar.timeZone = NSTimeZone.defaultTimeZone()
let dateToFire = calendar.dateFromComponents(calendarComponents)
let notification = UILocalNotification()
notification.alertBody = "\(title)"
notification.alertAction = "Read Now"
notification.fireDate = dateToFire
notification.alertTitle = "PULSE"
notification.repeatInterval = NSCalendarUnit.Day
notification.soundName = UILocalNotificationDefaultSoundName
notification.applicationIconBadgeNumber = UIApplication.sharedApplication().applicationIconBadgeNumber + 1
UIApplication.sharedApplication().scheduleLocalNotification(notification)
Ich habe sogar versucht, die Zeile herauszunehmen, die die inkrementierende Symbolabdrucknummer enthält, und das machte keinen Unterschied.
Wo setzen Sie diese Implementierung? App-Delegat hat keine verknüpfte Ansicht und daher auch keine viewDidLoad-Methode. –
Hoppla! Ich meinte, dass ich mit Optionen im App-Delegierten beenden starte. – Lindsay