Hola
En este artículo quiero compartir mi experiencia de usar una opción no obvia (al menos para mí) para cambiar el texto de notificación de la aplicación, enviando datos adicionales a través del UNUserNotificationCenter.
Espero que este artículo sea útil para principiantes en la programación para iOS en Swift. Se supone que tiene al menos algo de experiencia en programación con Swift para iOS. Usé Swift 5 y Xcode 10.2.1. Y así, comencemos.
Desafío
Tengo una aplicación que muestra las notificaciones del usuario. Una notificación consta de texto del cuerpo y texto de fondo.
Por lo tanto, la idea es mostrar primero al usuario solo el texto principal, y si el usuario desea conocer el texto secundario, debe hacer clic en el botón "mostrar" en la notificación.
Utilizo el siguiente método para mostrar una notificación (todas las explicaciones a continuación):
1. En primer lugar, debemos definir una instancia de UNUserNotificationCenter:
class NotificationService: NSObject, UNUserNotificationCenterDelegate { let notificationCenter = UNUserNotificationCenter.current() }
2. A continuación, declaramos un método que usaremos para enviar notificaciones:
Mi método de solicitud de notificación Cuando llamamos a este método, veremos una notificación en el momento que establezcamos.
Si el usuario retira la notificación, aparecerá el botón "Mostrar". Luego, el usuario debe hacer clic en este botón para ver el texto de fondo. Para ello, debemos utilizar el método de delegado UNUserNotificationCenterDelegate:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { … }
Entonces, el código que uso en el método de este delegado es el siguiente:
Mi método delegado func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { print(“didReceive response”)
Y así es como se ve:

Dentro del proyecto (que puede descargar desde el siguiente enlace) hay algo más de código, pero la esencia de la idea se describe en este artículo.
Gracias
Enlace al proyecto