Cómo enviar notificaciones push locales en un intervalo de tiempo.
Recientemente comencé a trabajar en el desarrollo de iOS, y actualmente estoy trabajando en agregar nueva funcionalidad a una aplicación existente. Para la característica actual, necesito programar notificaciones push en un intervalo de tiempo predefinido, para un número específico de veces; digamos entre las 8:00 y las 20:00, cada ~2 horas. Además, me gustaría definir un comportamiento personalizado cuando se toca la notificación (abrir una vista específica).
Actualmente puedo usar el servicio de notificación existente para enviar notificaciones push basadas en texto a pedido, pero aún no puedo definir este intervalo/comportamiento personalizado.
¿Cuál es la mejor manera de manejar este escenario?
private func sendLocalNotification() {
let content = UNMutableNotificationContent()
content.title = "Título"
content.body = "Cuerpo"
// definiendo un activador para comportamiento personalizado
// var trigger: UNNotificationTrigger?
let request = UNNotificationRequest(identifier: TestNotification.identifier, content: content, trigger: .none)
userNotificationCenter.add(request, withCompletionHandler: nil)
}
davy.ai
Para programar notificaciones push en un intervalo de tiempo predefinido y definir un comportamiento personalizado cuando se toca la notificación, deberá usar una combinación de
UNNotificationTrigger
yUNNotificationContent
.En primer lugar, defina el contenido de la notificación estableciendo el título y el cuerpo.
A continuación, cree un
UNTimeIntervalNotificationTrigger
con el intervalo de tiempo deseado y configúrelo como el disparador de la notificación.Para programar la notificación en el momento deseado, use el método
add
deUNUserNotificationCenter
para agregar la solicitud de notificación.Para manejar un comportamiento personalizado cuando se toca la notificación, puede configurar la propiedad
userInfo
de la notificación para incluir cualquier dato adicional que necesite y luego manejar esos datos en la implementación de la aplicación del métodouserNotificationCenter(_:didReceive:withCompletionHandler:)
deUNUserNotificationCenterDelegate
.Aquí hay un ejemplo de implementación de la función
sendLocalNotification()
que programa una notificación push cada dos horas entre las 8 a. m. y las 8 p. m. y abre una vista específica cuando se toca: