Notificaciones Remotas

Las notificaciones push permiten que tu aplicación llegue a los usuarios con más frecuencia, y también pueden realizar algunas tareas. En este tutorial, aprenderemos cómo configurar aplicaciones para recibir notificaciones remotas, mostrar contenido y luego realizar algunas acciones cuando el usuario presiona sobre ellas.
Comencemos.
APNs
APNs, que significa Apple Push Notification service, es un servicio que entrega mensajes a tus aplicaciones. La información de notificación enviada puede incluir badges, sonidos, contenido personalizado o alertas de texto personalizadas. Ten en cuenta que necesitas una cuenta de desarrollador de pago para poder configurar tu aplicación con la capacidad de Push Notification. También necesitas un dispositivo físico para probar si quieres lanzar notificaciones remotas ya que las notificaciones push no están disponibles en el simulador. Solo puedes simular notificaciones en simuladores.
Configuración
Primero, necesitas agregar el entitlement de notificaciones push a tu proyecto,
Dirígete a Project Setting > Signing Capabilities > + Capability > Agrega Push Notification

Si quieres enviar notificaciones a dispositivos reales, necesitas hacer algunos pasos extra para tener una clave de notificación:
- Inicia sesión en Apple developer
- En la sección
Keys> Agregar nuevas claves > Ingresa el nombre de tu clave > SeleccionaApple Push Notifications service (APNs)> Continuar.
- Descarga la clave y guárdala en cualquier ubicación donde quieras guardar esta clave. Nota que el nombre del archivo de la clave tiene un patrón
AuthKey_[Key ID].p8
Solicitar permisos del usuario
A continuación, la aplicación necesita pedir al usuario permiso para mostrar notificaciones.
Abre el archivo AppDelegate.swift y agrega el siguiente código
1 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { |
Si el proceso se completa exitosamente, se llamará al callback didRegisterForRemoteNotificationsWithDeviceToken: incluyendo tu token de dispositivo (Un valor único para identificar tu dispositivo, nota que es diferente cada vez que reinstalas la aplicación).
Si ocurre un error, se activará didFailToRegisterForRemoteNotificationsWithError:.
1 | func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { |
Nota que Alert, sound y badge es la combinación común al solicitar autorización.
Hay otras opciones que puedes encontrar en la documentación de Apple.
Otra advertencia es que si ejecutas tu aplicación en un simulador, obtendrás el evento didFailToRegisterForRemoteNotificationsWithError ya que las notificaciones remotas no son soportadas en simuladores.
Manejar notificaciones mientras la aplicación está en primer plano
Después de registrarte para notificaciones remotas exitosamente, si quieres manejar notificaciones mientras tu aplicación está en primer plano, necesitas implementar userNotificationCenter:willPresent:withCompletionHandler en tu clase.
1 | public func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { |
Si no implementas esta función, las notificaciones no se mostrarán si tu aplicación está en primer plano.
Es hora de enviar notificaciones
Hay 2 formas de probar tu implementación. Si no tienes un dispositivo físico, no te preocupes, aún puedes simular notificaciones de una manera simple, o puedes enviar notificaciones reales a dispositivos reales.
Simular APNs
Crea un archivo con extensión .apns. ej. SimulateNoti.apns, luego copia tu contenido a este archivo
1 | { |
Arrastrar y soltar esto en el simulador objetivo presentará la notificación

Enviar a dispositivos reales
Primero, necesitas una herramienta cliente de notificaciones remotas que te ayude a enviar una notificación. Una gran herramienta para probar es Push notification tester. Navega a este sitio web para descargar y lanzar la aplicación.
Después de lanzar la aplicación exitosamente,
Cambia a la pestaña
TOKENen la secciónAuthentication.Presiona
SELECT P8y selecciona tu archivo P8 que descargaste del paso anterior, luego completa el resto de la informaciónKEY ID,TEAM ID. ElKEY IDes parte del nombre del archivo P8AuthKey_[Key ID].p8. Para elTEAM ID, puedes encontrarlo en tu página de membresía.
En la sección
Body, completa tu bundle Id de la aplicación (ej. com.example.yourapp) y tu token de dispositivo que se generó del callbackdidRegisterForRemoteNotificationsWithDeviceToken:.Compón tu contenido. Aquí hay un cuerpo común para notificaciones push.
ej.1
2
3
4
5
6
7
8
9
10{
"aps": {
"alert": {
"title" : "Your title",
"subtitle" : "Your subtitle",
"body" : "Your body"
},
"sound": "default"
}
}
Para todas las opciones disponibles en una notificación, por favor consulta la documentación de Apple: generating_a_remote_notification

- Presiona el botón
Sendpara entregar tu notificación al dispositivo seleccionado. Aparecerá un mensaje en la parte superior del botón para mostrar el resultado.
Notificación silenciosa
Desde mi perspectiva, la característica más interesante de las notificaciones Push es la “Notificación silenciosa”, que puede despertar tu aplicación para realizar algunas tareas mientras tu aplicación está en segundo plano, incluso si tu aplicación fue terminada por el usuario. Muchos ingenieros están buscando una manera de mantener su aplicación viva en segundo plano tanto como puedan. Hay varias formas de lograrlo usando restauración y preservación, core location, iBeacon. La notificación push silenciosa es una de ellas.
Tendré otra publicación hablando sobre notificación silenciosa y mi experimento para que tengamos más detalles e información.
Para enviar una notificación silenciosa, simplemente cambia el contenido JSON a
1 | { |
Después de presionar el botón Send, no hay notificación mostrándose en tu aplicación.
Reflexión final
Al usar notificaciones push sabiamente, puedes involucrar a los usuarios para que vuelvan a tu aplicación nuevamente. Sin embargo, si abusas de las notificaciones, puede llevar a efectos negativos como que los usuarios desactiven los permisos de tu aplicación o califiquen tu aplicación con 1* con quejas en la tienda (Igual que nuestra historia en el pasado :)).
Las notificaciones no solo ayudan a entregar tus mensajes a los usuarios sino que también pueden usarse para otros propósitos avanzados como despertar tu aplicación usando notificaciones silenciosas. En la próxima publicación, tendremos una mirada profunda a esta increíble característica.
Si tienes alguna duda o comentario, házmelo saber.
¡Feliz de compartir!