Rich Notification: qué es, contenido multimedia y creación de notificaciones

Autor: IT Sectr Publicado: 2026-03-20 Tiempo de lectura: 8 min

Rich Notification es un formato mejorado de notificaciones push de iOS que incluye archivos adjuntos multimedia, botones interactivos e interfaces personalizadas para mejorar la experiencia del usuario. A diferencia de las notificaciones de texto estándar, Rich Notification puede mostrar imágenes, videos y audio directamente en el banner o en la pantalla de bloqueo. Según Apple Developer Documentation, 2026, UNNotificationAttachment admite hasta 10 archivos en una sola notificación y los escala automáticamente para una visualización óptima en todos los dispositivos.

Puntos clave

  • Archivos adjuntos multimedia — Rich Notification admite imágenes (JPEG, PNG, GIF), video (MP4, MOV hasta 30 segundos) y audio (MP3, AAC, WAV) a través de UNNotificationAttachment.
  • Interactividad — los botones y la entrada de texto se agregan mediante UNNotificationAction y UNTextInputNotificationAction, vinculados a categorías de notificaciones.
  • Service Extension — un componente obligatorio para cargar contenido multimedia: descarga el archivo adjunto desde la URL del payload y lo agrega al contenido.
  • Content Extension — crea una interfaz de notificación completamente personalizada con UI propia, animaciones y manejo de gestos.
  • Límites — el tamaño máximo del archivo adjunto es 10 MB, el límite de memoria de la extensión es 50 MB, el tiempo de procesamiento es de hasta 30 segundos.

Qué es Rich Notification

Rich Notification es una notificación push de iOS que contiene no solo texto, sino también archivos adjuntos multimedia, elementos interactivos y una interfaz personalizada. El término “rich” (enriquecido) refleja la capacidad de incluir imágenes, videos, audio, botones de acción y entrada de texto en una notificación, convirtiendo una simple alerta en un elemento interactivo completo.

Evolución de las notificaciones en iOS

Apple introdujo la compatibilidad con Rich Notification en iOS 10 junto con el framework UserNotifications. Antes de esto, las notificaciones push solo podían contener texto, sonido y un badge. iOS 10 presentó UNNotificationServiceExtension y UNNotificationContentExtension, que abrieron la posibilidad de modificar el contenido y crear interfaces personalizadas. Versiones posteriores agregaron compatibilidad con SwiftUI en Content Extension, GIF animados y una mejor escala de medios.

Ventajas sobre las notificaciones estándar

Rich Notification aumenta significativamente la participación de los usuarios. Los estudios de Apple muestran que las notificaciones con imágenes reciben entre un 30% y un 40% más de interacciones en comparación con las que solo tienen texto. Una imagen de producto, una vista previa de video o un botón de respuesta rápida permiten al usuario tomar una decisión directamente desde la notificación sin abrir la aplicación. Esto acorta el camino hacia la acción objetivo y mejora la experiencia del usuario.

Tipos de archivos adjuntos multimedia y sus formatos

UNNotificationAttachment admite tres categorías de medios: imágenes, video y audio. Cada tipo tiene sus propias limitaciones de formato, tamaño y duración. El sistema escala automáticamente las imágenes para adaptarlas al tamaño de la notificación y limita la duración del video a 30 segundos para optimizar el rendimiento.

Tipo de medioFormatos admitidosTamaño máximo
ImágenesJPEG, PNG, GIF, TIFF10 MB por archivo
VideoMPEG, MP4, MOV10 MB, hasta 30 segundos
AudioMP3, AAC, WAV, CAF10 MB

Imágenes y GIF animados

Las imágenes se recortan y escalan automáticamente por el sistema para mostrarse en vistas de notificación compactas y expandidas. Los GIF animados son compatibles a partir de iOS 12 y se reproducen automáticamente al ver la notificación. El tamaño de imagen recomendado es de 1024x1024 píxeles, lo que garantiza una visualización nítida en todos los dispositivos, incluido el iPad con pantalla grande.

Archivos adjuntos de video y audio

El video en Rich Notification se reproduce sin sonido de forma predeterminada — el usuario puede activar el sonido mediante el botón del reproductor. La duración máxima del video es de 30 segundos, después de lo cual la reproducción se detiene. Los archivos adjuntos de audio se pueden usar para mensajes de voz o vistas previas de sonido y se reproducen al tocar la notificación en la vista expandida.

Botones interactivos y acciones

Las acciones interactivas permiten al usuario realizar operaciones directamente desde la notificación sin abrir la aplicación. Las acciones se registran a través de UNNotificationCategory y UNNotificationAction al iniciar la aplicación. Cada acción puede ser en segundo plano (sin abrir la aplicación) o en primer plano (abre la aplicación para completar la operación).

UNNotificationAction y UNTextInputNotificationAction

UNNotificationAction representa un botón con un título y modificadores opcionales como requiresAuthentication (requiere Face ID/Touch ID) o destructive (resaltado en rojo). UNTextInputNotificationAction amplía esta capacidad agregando un campo de entrada de texto — ideal para respuestas rápidas a mensajes o comentarios. Las acciones se muestran al mantener presionada la notificación o deslizar hacia abajo.

Registro de categorías y acciones

Las categorías de notificaciones vinculan el tipo de contenido con un conjunto de acciones disponibles. El proceso de registro se realiza en AppDelegate al iniciar la aplicación a través de UNUserNotificationCenter.current().setNotificationCategories. La categoría se especifica en el servidor en el campo category del payload JSON, y el sistema aplica automáticamente el conjunto de acciones correspondiente a la notificación.

Manejo de toques en acciones

Cuando el usuario toca un botón o envía texto, el sistema llama al delegado UNUserNotificationCenterDelegate con el método didReceive response. UNNotificationResponse contiene el identificador de la acción y el texto ingresado (para UNTextInputNotificationAction). Con base en esta información, la aplicación ejecuta la lógica de negocio correspondiente: envía un mensaje, confirma una acción o abre una pantalla específica.

Implementación de Rich Notification en Swift

Recorramos el ciclo completo de creación de Rich Notification: desde el registro de categorías en AppDelegate hasta el procesamiento en Service Extension y la visualización. AppDelegate registra la categoría con botones, el servidor envía una notificación con una URL de imagen, Service Extension descarga el contenido multimedia y Content Extension muestra una interfaz personalizada con botones.

swift
// AppDelegate — registro de categorías y acciones
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Responder",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Me gusta",
        options: [])

    let category = UNNotificationCategory(
        identifier: "social_post",
        actions: [replyAction, likeAction],
        intentIdentifiers: [],
        options: [])

    UNUserNotificationCenter.current()
        .setNotificationCategories([category])
    return true
}

Service Extension para cargar imágenes

Después de recibir una notificación push con la categoría “social_post” y una URL de imagen en un campo personalizado, se activa Service Extension. La extensión descarga la imagen de la red, crea un UNNotificationAttachment con un identificador único y lo agrega al contenido. Es importante verificar el tamaño del archivo descargado — si supera los 10 MB, no se creará el attachment y el sistema mostrará la notificación sin contenido multimedia.

swift
class NotificationService: UNNotificationServiceExtension {

    override func didReceive(
        _ request: UNNotificationRequest,
        withContentHandler contentHandler:
        @escaping (UNNotificationContent) -> Void
    ) {
        let content = (request.content.mutableCopy()
            as! UNMutableNotificationContent)
        guard let urlString = content.userInfo["media-url"]
            as? String,
            let url = URL(string: urlString)
        else { contentHandler(request.content); return }

        URLSession.shared.downloadTask(with: url) {
            location, _, _ in
            guard let location = location else {
                contentHandler(content); return }
            let attachment = try! UNNotificationAttachment(
                identifier: "media", url: location,
                options: [UNNotificationAttachmentOptionsTypeHintKey:
                    "jpg"])
            content.attachments = [attachment]
            contentHandler(content)
        }.resume()
    }
}

Prueba de Rich Notification

Para probar Rich Notification sin servidor, use el simulador de iOS y envíe pushes a través del terminal con xcrun simctl push. En el payload, asegúrese de especificar mutable-content: 1 para activar Service Extension y la categoría para mostrar las acciones. El comando ejecuta un push desde un archivo JSON directamente al simulador seleccionado, lo que permite iterar rápidamente sin configurar infraestructura de servidor.

Content Extension e interfaz personalizada

UNNotificationContentExtension permite reemplazar completamente la interfaz de notificación estándar por una vista UIKit o SwiftUI personalizada. La extensión se activa cuando el usuario expande la notificación (force touch o deslizar hacia abajo) y puede contener botones, controles deslizantes, animaciones y cualquier otro componente de UI. El tamaño de la interfaz se adapta al contenido mediante Auto Layout.

Storyboard y SwiftUI en Content Extension

Content Extension se basa en un storyboard con un controlador de vista que hereda de UIViewController. SwiftUI View se integra a través de UIHostingController a partir de iOS 16, lo que permite enfoques modernos para la construcción de interfaces. Para compatibilidad con iOS 14–15, se recomienda usar UIKit con archivos xib. La interfaz recibe contenido modificado de Service Extension a través de UNNotificationContent.

Manejo de acciones del usuario

Content Extension implementa el protocolo UNNotificationContentExtension con el método didReceive response. UNNotificationResponse contiene información sobre el botón presionado o el texto ingresado. La extensión puede actualizar la interfaz sin cerrar la notificación o llamar al completion handler para cerrarla. Esto permite crear escenarios de interacción rápida, como un “me gusta” con retroalimentación visual directamente en la notificación.

Recomendaciones de diseño

Apple recomienda que Content Extension sea conciso y funcional, evitando elementos excesivos. La altura máxima de la notificación expandida es de aproximadamente 400 puntos, después de lo cual el contenido se desplaza. Use fuentes y espaciados del sistema para mantener la coherencia con otras notificaciones. Pruebe en diferentes tamaños de pantalla para asegurarse de que la interfaz se muestre correctamente tanto en iPhone como en iPad.

Preguntas frecuentes

¿Cuál es el tamaño máximo de imagen en Rich Notification?

El tamaño máximo de un archivo adjunto multimedia es 10 MB. Si se supera el límite, no se crea UNNotificationAttachment y la notificación se muestra sin contenido multimedia. Se recomienda optimizar las imágenes a 1–3 MB para una carga rápida en Service Extension.

¿Funcionan las Rich Notifications en todos los modelos de iPhone?

Rich Notifications son compatibles con todos los dispositivos con iOS 10 y versiones posteriores, incluidos iPhone 5s y más nuevos. Content Extension con interfaz personalizada está disponible desde iOS 12. SwiftUI en Content Extension — desde iOS 16. En versiones anteriores, la notificación se muestra en su forma estándar.

¿Se puede usar GIF en Rich Notification?

Sí, los GIF animados son compatibles a partir de iOS 12. El GIF se carga a través de UNNotificationAttachment como una imagen normal y se reproduce automáticamente al ver la notificación. El tamaño del GIF está limitado a los mismos 10 MB que otros formatos.

¿Cuántos botones se pueden agregar a una notificación?

Máximo 4 acciones por notificación al registrar una categoría. Si se especifican más, el sistema muestra las primeras 4 e ignora el resto. Se recomienda usar 2–3 botones para una experiencia de usuario óptima — demasiadas opciones sobrecargan la interfaz.

¿Se necesita un servidor para enviar Rich Notifications?

Sí, el servidor debe enviar pushes a través de APNS (servicio de notificaciones push de Apple) con un payload JSON que contenga la URL del archivo multimedia en un campo personalizado y el indicador mutable-content: 1. El servidor también especifica la categoría para activar Content Extension y las acciones.

Resumen

  • Rich Notification — una notificación push de iOS con archivos adjuntos multimedia, botones interactivos y UI personalizada que aumenta la participación del usuario.
  • Medios compatibles — imágenes JPEG/PNG/GIF, video MP4/MOV (hasta 30 s), audio MP3/AAC/WAV con un límite de 10 MB por archivo.
  • Service Extension descarga contenido multimedia desde la URL del payload y agrega UNNotificationAttachment al contenido de la notificación.
  • Acciones interactivas — hasta 4 botones por categoría, incluida la entrada de texto a través de UNTextInputNotificationAction.
  • Content Extension reemplaza la interfaz estándar por una vista UIKit/SwiftUI personalizada con elementos arbitrarios.
  • Content Extension implementa el protocolo UNNotificationContentExtension con el método didReceive para manejar toques y actualizar la UI en tiempo real.
  • Rich Notification requiere configuración en todos los niveles: servidor (APNS), Service Extension (carga de medios) y AppDelegate (registro de categorías).

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también