Interactive Notification es una notificación push con elementos interactivos que permite realizar una acción sin abrir la aplicación. Según Apple Human Interface Guidelines (2025), estas notificaciones reducen la cantidad de pasos hasta la acción objetivo en un 40%. Los botones de acción y los campos de entrada permiten al usuario responder a un mensaje, pagar una suscripción o confirmar una reserva directamente desde la bandeja de notificaciones sin abrir la aplicación.
Puntos clave
Interactive Notification es un formato extendido de notificación push que contiene controles interactivos: botones, interruptores y campos de entrada de texto. A diferencia de una notificación estándar que solo informa, una interactiva permite al usuario realizar una acción objetivo directamente desde la bandeja de notificaciones o la pantalla de bloqueo. Según Google Material Design (2025), las notificaciones interactivas son procesadas por el sistema operativo sin iniciar el proceso principal de la aplicación — esto ahorra recursos de la batería y acelera el tiempo de respuesta. El desarrollador define un conjunto de acciones a través de categorías en iOS y canales en Android, y el sistema las muestra según el contexto.
Cada notificación interactiva consta de tres niveles: contenido principal (título, cuerpo), acciones (botones) y entrada de texto opcional. En iOS, estos componentes se combinan mediante UNNotificationCategory, y en Android — mediante NotificationCompat.Action.Builder. El sistema muestra los botones debajo del texto de la notificación en vista contraída o expandida según la versión del SO y la longitud del texto. El usuario ve las acciones disponibles inmediatamente después de recibir la notificación y puede realizar una de ellas sin cambiar a la aplicación.
El mecanismo de funcionamiento de Interactive Notification se divide en dos fases: registro de categorías al iniciar la aplicación y procesamiento de la acción cuando el usuario toca. En la etapa de registro, el desarrollador crea objetos de categoría con un conjunto de acciones — cada acción tiene un identificador, un título y opciones. Al recibir una notificación push, el sistema la empareja con la categoría registrada mediante el campo categoryIdentifier y añade automáticamente los botones correspondientes. Cuando el usuario toca un botón, el sistema llama al delegado UNUserNotificationCenter o PendingIntent en Android con el identificador de la acción y pasa el resultado de vuelta a la aplicación. Según WWDC 2024, el tiempo de procesamiento de una acción interactiva en iOS no supera los 200 ms con una configuración adecuada.
Las notificaciones interactivas se dividen en tres tipos principales según el método de interacción: con botones, de texto y multimedia. Cada tipo resuelve su propia tarea y se utiliza en escenarios específicos. La elección del tipo depende del contexto — cuantos menos pasos requiera el usuario, mayor será la conversión. Apple y Google recomiendan usar botones para confirmación, campos de entrada para respuestas y medios para vista previa de contenido.
El tipo más común es una notificación con uno o varios botones, cada uno realizando una acción predefinida. Por ejemplo, botones “Aceptar” y “Rechazar” para un evento de calendario, “Me gusta” y “Responder” para un mensaje. iOS admite hasta cuatro botones, Android — hasta tres. Los botones se pueden agrupar por prioridad: normales y destructivos (con confirmación). Apple recomienda no más de dos botones principales para la comodidad del usuario en la pantalla de bloqueo.
RemoteInput es una tecnología que permite al usuario introducir texto directamente en la notificación sin abrir la aplicación. En iOS se utiliza UNTextInputNotificationAction para esto, en Android — RemoteInput.Builder con una clave para extraer el texto introducido. Se usa con mayor frecuencia en mensajería para responder rápidamente a un mensaje. El texto introducido se pasa a la aplicación a través del servicio de notificaciones o del manejador local. La limitación es que el texto no puede contener formato, solo cadena simple.
Las notificaciones con adjuntos multimedia permiten mostrar imágenes, audio y vídeo directamente en la bandeja de notificaciones. En iOS, esto se implementa mediante UNNotificationAttachment, en Android — mediante NotificationCompat.MessagingStyle con BigPictureStyle. El contenido multimedia es cargado por el servidor del proveedor push y se envía junto con la notificación como adjunto. El tamaño del adjunto está limitado — Apple recomienda no más de 10 MB, Google — no más de 1 MB para imágenes. El contenido multimedia aumenta la capacidad informativa de las notificaciones para noticias, marketplaces y redes sociales.
En iOS, Interactive Notification se implementa a través del framework UserNotifications utilizando UNNotificationCategory y UNNotificationAction. La aplicación registra categorías al iniciar, y al recibir una notificación, el sistema muestra automáticamente los botones correspondientes. Para manejar las acciones, es necesario implementar el método userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler. A continuación se muestra un ejemplo de registro de una categoría con un botón y entrada de texto en Swift.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Responder",
options: [.authenticationRequired],
textInputButtonTitle: "Enviar",
textInputPlaceholder: "Introducir mensaje…"
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
Después de llamar a setNotificationCategories, el sistema guarda las categorías y las utiliza para todas las notificaciones posteriores. El código debe llamarse en cada inicio de la aplicación para sincronizar las categorías con las nuevas versiones. El manejo de respuestas se realiza en el delegado del centro de notificaciones — la aplicación recibe el identificador de la acción y el texto introducido para su posterior procesamiento.
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completion: @escaping VoidBlock
) {
if response.actionIdentifier == "reply" {
let textResponse = response as! UNTextInputNotificationResponse
let message = textResponse.userText
sendMessage(message)
}
completion()
}
El método userNotificationCenter es llamado por el sistema después de que el usuario toca un botón o envía texto. Dentro del manejador, se verifica el actionIdentifier — si coincide con el identificador registrado, la aplicación extrae el texto introducido de userText y lo envía al servidor. Para botones normales sin entrada de texto, se utiliza UNNotificationResponse sin conversión de tipo.
En Android, las notificaciones interactivas se crean mediante la clase NotificationCompat con los métodos addAction y RemoteInput. A diferencia de iOS, Android no requiere registro previo de categorías — las acciones se añaden directamente a cada notificación a través del Builder. Esto proporciona más flexibilidad: cada notificación puede tener un conjunto único de botones. A continuación se muestra un ejemplo de una notificación con un botón de respuesta en Java usando RemoteInput.
RemoteInput remoteInput = new RemoteInput.Builder("key_reply")
.setLabel("Responder")
.build();
PendingIntent replyIntent = PendingIntent.getBroadcast(
this, 1001,
new Intent("ACTION_REPLY"),
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Action action =
new NotificationCompat.Action.Builder(
R.drawable.ic_reply,
"Responder", replyIntent
)
.addRemoteInput(remoteInput)
.build();
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this, "messages")
.setContentTitle("Mensaje nuevo")
.setContentText("¡Hola! ¿Cómo estás?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
El elemento clave es RemoteInput, que conecta el campo de entrada con la acción. Cuando el usuario toca el botón “Responder”, el sistema abre un diálogo de entrada de texto dentro de la notificación. Después del envío, el texto se pasa a través de Intent a un BroadcastReceiver o Activity mediante el PendingIntent especificado. Para obtener el texto en el receptor, se utiliza RemoteInput.getResultsFromIntent(intent) con la clave “key_reply”.
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
El método getResultsFromIntent extrae el texto introducido por el usuario del Intent pasado por el sistema al enviar la respuesta. El resultado se devuelve como CharSequence, que se convierte en una cadena para enviar al servidor. Si el usuario cerró el diálogo de entrada sin enviar, results estará vacío — esto debe tenerse en cuenta durante el procesamiento. Este enfoque permite implementar una respuesta rápida sin iniciar una Activity.
Interactive Notification se utiliza en aplicaciones de cualquier tipo donde se requiera una acción rápida del usuario. Los escenarios más efectivos son los mensajeros para responder a un mensaje, el comercio electrónico para la confirmación de pedidos y los calendarios para aceptar una invitación. Según Localytics (2025), las aplicaciones con notificaciones interactivas muestran una retención un 28% mayor al séptimo día. A continuación se muestra una tabla con escenarios populares y características de cada plataforma.
| Escenario | Acciones | Plataforma |
|---|---|---|
| Mensajería | Responder con texto, Me gusta | iOS + Android |
| E-commerce | Confirmar, posponer, cancelar | iOS + Android |
| Calendario | Aceptar, rechazar, quizás | iOS |
| Noticias | Guardar, compartir, abrir | Android |
| Reservas | Confirmar, reprogramar, cancelar | iOS + Android |
Al diseñar notificaciones interactivas, es importante tener en cuenta la limitación — el usuario puede realizar una acción solo una vez. Después de pulsar un botón, la notificación desaparece o pasa a un estado “realizado”. Por lo tanto, cada acción debe ser irreversible o tener una confirmación en el segundo paso.
Preguntas frecuentes
Interactive Notification es una notificación push con botones, un campo de entrada o un adjunto multimedia que permite al usuario realizar una acción sin abrir la aplicación. Es compatible con iOS a través de UserNotifications y con Android a través de NotificationCompat.
Una notificación normal solo informa — el usuario toca y abre la aplicación. Una notificación interactiva contiene botones o un campo de entrada, y la acción se realiza directamente en la bandeja de notificaciones. Esto acorta el camino hacia la acción objetivo y reduce la carga en la aplicación.
iOS admite hasta cuatro botones, Android — hasta tres. En Android, dos botones se muestran en el panel de notificaciones, el tercero está disponible en el menú desplegable. Apple recomienda no más de dos botones principales para la comodidad del usuario en la pantalla de bloqueo.
En iOS se utiliza UNTextInputNotificationAction, en Android — RemoteInput.Builder con una clave. El usuario introduce texto en un cuadro de diálogo dentro de la notificación, y la aplicación lo recibe a través de un delegado o Intent sin iniciar una Activity.
Recibir una notificación push requiere conexión a internet, pero la interactividad en sí (mostrar botones, entrada de texto) funciona sin conexión. El envío del resultado al servidor puede retrasarse hasta que se restablezca la conexión.
Resumen
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.
Lea también