unmutablenotificationcontent permission objective notification example ios xcode swift notifications local

permission - La notificación local de iOS Swift no aparece "apareciendo"



unmutablenotificationcontent badge (3)

Compruebe Configuración> YourApp> Notificaciones .

Verificar los permisos allí.

Estoy tratando de enviar una notificación local a la hora programada. Pero las notificaciones no aparecen en la pantalla, pero se muestran en el centro de notificaciones cuando deslizo hacia abajo.

Esto es lo que intento lograr. Esto es lo que obtengo.

Este código es de myFinishLaunchingWithOptions () de mi AppDelegate.

// Setup local push notifications application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: nil)) scheduleNotifications()

Y este es el código de scheduleNotifications ()

func scheduleNotifications() { // create a corresponding local notification let notification = UILocalNotification() // Get today''s date, time and year let calendar = NSCalendar.currentCalendar() let components = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year], fromDate: NSDate()) // Sets the fire time to 2pm/1400 hours to anticipate user for lunch time components.hour = 19 components.minute = 13 components.second = 00 notification.fireDate = components.date // Sets the fire date notification.alertBody = "Enjoyed your lunch? Don''t forget to track your expenses!" notification.alertAction = "Add expense" notification.repeatInterval = NSCalendarUnit.Day // Repeats the notifications daily UIApplication.sharedApplication().scheduleLocalNotification(notification) }

Cualquier ayuda sería apreciada. ¡Gracias!


Obtengo el mismo comportamiento extraño. Acabo de crear un nuevo proyecto para probar tu código.

Lo que noté cuando cambiaste tu fireDate a:

notification.fireDate = NSDate(timeIntervalSinceNow: 10)

Obtendrás tu comportamiento deseado.

¡Espero que esto ayude un poco!


Su problema es la forma en que está convirtiendo el objeto NSDateComponents en un NSDate.

Simplemente llamando a components.date sin establecer un calendar para el objeto NSDateComponents devolverá nil .

Intenta usar esto en su lugar:

notification.fireDate = calendar.dateFromComponents(components)

Alternativamente, puede establecer la propiedad de calendar en el objeto de componentes:

components.calendar = calendar

Como está estableciendo la propiedad fireDate en el objeto de notificación en nil , se activará inmediatamente, es decir, antes de que tenga la oportunidad de cerrar la aplicación y bloquear la pantalla. Este comportamiento está documentado en la referencia de clase UILocalNotification