Interactive Notification é uma notificação push com elementos interativos que permite realizar uma ação sem abrir o aplicativo. De acordo com as Apple Human Interface Guidelines (2025), essas notificações reduzem o número de etapas até a ação alvo em 40%. Os botões de ação e campos de entrada permitem ao usuário responder a uma mensagem, pagar uma assinatura ou confirmar uma reserva diretamente da bandeja de notificações sem abrir o aplicativo.
Pontos principais
Interactive Notification é um formato estendido de notificação push contendo controles interativos: botões, interruptores e campos de entrada de texto. Ao contrário de uma notificação padrão que apenas informa, uma interativa permite ao usuário realizar uma ação alvo diretamente da bandeja de notificações ou tela de bloqueio. De acordo com o Google Material Design (2025), as notificações interativas são processadas pelo sistema operacional sem iniciar o processo principal do aplicativo — isso economiza recursos da bateria e acelera o tempo de resposta. O desenvolvedor define um conjunto de ações através de categorias no iOS e canais no Android, e o sistema as exibe dependendo do contexto.
Cada notificação interativa consiste em três níveis: conteúdo principal (título, corpo), ações (botões) e entrada de texto opcional. No iOS, esses componentes são combinados através de UNNotificationCategory, e no Android — através de NotificationCompat.Action.Builder. O sistema exibe os botões abaixo do texto da notificação em visualização recolhida ou expandida dependendo da versão do SO e do comprimento do texto. O usuário vê as ações disponíveis imediatamente após receber a notificação e pode realizar uma delas sem mudar para o aplicativo.
O mecanismo de funcionamento da Interactive Notification divide-se em duas fases: registo de categorias ao iniciar o aplicativo e processamento da ação quando o usuário toca. Na fase de registo, o desenvolvedor cria objetos de categoria com um conjunto de ações — cada ação tem um identificador, um título e opções. Ao receber uma notificação push, o sistema a corresponde à categoria registada pelo campo categoryIdentifier e adiciona automaticamente os botões correspondentes. Quando o usuário toca num botão, o sistema chama o delegado UNUserNotificationCenter ou PendingIntent no Android com o identificador da ação e passa o resultado de volta para o aplicativo. Segundo a WWDC 2024, o tempo de processamento de uma ação interativa no iOS não excede 200 ms com configuração adequada.
As notificações interativas dividem-se em três tipos principais conforme o método de interação: com botões, de texto e multimédia. Cada tipo resolve a sua própria tarefa e é usado em cenários específicos. A escolha do tipo depende do contexto — quanto menos passos forem necessários ao usuário, maior será a conversão. A Apple e o Google recomendam usar botões para confirmação, campos de entrada para respostas e multimédia para pré-visualização de conteúdo.
O tipo mais comum é uma notificação com um ou mais botões, cada um executando uma ação predefinida. Por exemplo, botões “Aceitar” e “Recusar” para um evento de calendário, “Gostar” e “Responder” para uma mensagem. O iOS suporta até quatro botões, o Android — até três. Os botões podem ser agrupados por prioridade: normais e destrutivos (com confirmação). A Apple recomenda não mais de dois botões principais para conveniência do usuário no ecrã de bloqueio.
RemoteInput é uma tecnologia que permite ao usuário inserir texto diretamente na notificação sem abrir o aplicativo. No iOS, utiliza-se UNTextInputNotificationAction para isso, no Android — RemoteInput.Builder com uma chave para extrair o texto inserido. É mais frequentemente usado em mensageiros para resposta rápida a uma mensagem. O texto inserido é passado para o aplicativo através do serviço de notificações ou do manipulador local. A limitação é que o texto não pode conter formatação, apenas string simples.
Notificações com anexos multimédia permitem exibir imagens, áudio e vídeo diretamente na bandeja de notificações. No iOS, isto é implementado através de UNNotificationAttachment, no Android — através de NotificationCompat.MessagingStyle com BigPictureStyle. A multimédia é carregada pelo servidor do fornecedor push e enviada juntamente com a notificação como anexo. O tamanho do anexo é limitado — a Apple recomenda não mais de 10 MB, o Google — não mais de 1 MB para imagens. O conteúdo multimédia aumenta a informatividade das notificações para notícias, marketplaces e redes sociais.
No iOS, a Interactive Notification é implementada através do framework UserNotifications utilizando UNNotificationCategory e UNNotificationAction. O aplicativo regista categorias no arranque e, ao receber uma notificação, o sistema exibe automaticamente os botões correspondentes. Para manipular as ações, é necessário implementar o método userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler. Abaixo está um exemplo de registo de uma categoria com um botão e entrada de texto em Swift.
import UserNotifications
let replyAction = UNTextInputNotificationAction(
identifier: "reply",
title: "Responder",
options: [.authenticationRequired],
textInputButtonTitle: "Enviar",
textInputPlaceholder: "Digite a mensagem…"
)
let category = UNNotificationCategory(
identifier: "message",
actions: [replyAction],
intentIdentifiers: [],
options: []
)
UNUserNotificationCenter.current()
.setNotificationCategories([category])
Após chamar setNotificationCategories, o sistema guarda as categorias e utiliza-as para todas as notificações subsequentes. O código deve ser chamado em cada inicialização do aplicativo para sincronizar as categorias com novas versões. O tratamento da resposta é realizado no delegado do centro de notificações — o aplicativo recebe o identificador da ação e o texto inserido para processamento posterior.
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()
}
O método userNotificationCenter é chamado pelo sistema após o usuário tocar num botão ou enviar texto. Dentro do manipulador, verifica-se o actionIdentifier — se corresponder ao identificador registado, o aplicativo extrai o texto inserido de userText e envia-o para o servidor. Para botões normais sem entrada de texto, utiliza-se UNNotificationResponse sem conversão de tipo.
No Android, as notificações interativas são criadas através da classe NotificationCompat com os métodos addAction e RemoteInput. Ao contrário do iOS, o Android não requer registo prévio de categorias — as ações são adicionadas diretamente a cada notificação através do Builder. Isto proporciona mais flexibilidade: cada notificação pode ter um conjunto único de botões. Abaixo está um exemplo de uma notificação com um botão de resposta em 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("Nova mensagem")
.setContentText("Olá! Como vai?")
.setSmallIcon(R.drawable.ic_notification)
.addAction(action);
NotificationManagerCompat.from(this)
.notify(100, builder.build());
O elemento chave é o RemoteInput, que liga o campo de entrada à ação. Quando o usuário toca no botão “Responder”, o sistema abre um diálogo de entrada de texto dentro da notificação. Após o envio, o texto é passado através de Intent para um BroadcastReceiver ou Activity pelo PendingIntent especificado. Para obter o texto no recetor, utiliza-se RemoteInput.getResultsFromIntent(intent) com a chave “key_reply”.
Bundle results = RemoteInput.getResultsFromIntent(intent);
if (results != null) {
CharSequence reply = results.getCharSequence("key_reply");
if (reply != null) {
sendReplyToServer(reply.toString());
}
}
O método getResultsFromIntent extrai o texto inserido pelo usuário do Intent passado pelo sistema ao enviar a resposta. O resultado é devolvido como CharSequence, que é convertido numa string para envio ao servidor. Se o usuário fechou o diálogo de entrada sem enviar, results estará vazio — isto deve ser considerado durante o processamento. Esta abordagem permite implementar resposta rápida sem iniciar uma Activity.
A Interactive Notification é utilizada em aplicativos de qualquer tipo onde seja necessária uma ação rápida do usuário. Os cenários mais eficazes são mensageiros para responder a uma mensagem, e-commerce para confirmação de encomenda e calendários para aceitar um convite. Segundo a Localytics (2025), aplicativos com notificações interativas mostram uma retenção 28% superior ao 7º dia. Abaixo está uma tabela com cenários populares e características da plataforma.
| Cenário | Ações | Plataforma |
|---|---|---|
| Mensageiro | Responder com texto, Gostar | iOS + Android |
| E-commerce | Confirmar, adiar, cancelar | iOS + Android |
| Calendário | Aceitar, recusar, talvez | iOS |
| Notícias | Guardar, partilhar, abrir | Android |
| Reservas | Confirmar, reagendar, cancelar | iOS + Android |
Ao projetar notificações interativas, é importante considerar a limitação — o usuário só pode realizar uma ação uma vez. Após pressionar um botão, a notificação desaparece ou transita para um estado “concluído”. Portanto, cada ação deve ser irreversível ou ter uma confirmação no segundo passo.
Perguntas frequentes
Interactive Notification é uma notificação push com botões, um campo de entrada ou um anexo multimédia que permite ao usuário realizar uma ação sem abrir o aplicativo. É suportada no iOS através de UserNotifications e no Android através de NotificationCompat.
Uma notificação normal apenas informa — o usuário toca e abre o aplicativo. Uma notificação interativa contém botões ou um campo de entrada, e a ação é realizada diretamente na bandeja de notificações. Isto encurta o caminho até a ação alvo e reduz a carga no aplicativo.
O iOS suporta até quatro botões, o Android — até três. No Android, dois botões são exibidos no painel de notificações, o terceiro está disponível no menu suspenso. A Apple recomenda não mais de dois botões principais para conveniência do usuário no ecrã de bloqueio.
No iOS utiliza-se UNTextInputNotificationAction, no Android — RemoteInput.Builder com uma chave. O usuário insere texto numa caixa de diálogo dentro da notificação, e o aplicativo recebe-o através de um delegado ou Intent sem iniciar uma Activity.
Receber uma notificação push requer ligação à internet, mas a própria interatividade (exibir botões, entrada de texto) funciona offline. O envio do resultado para o servidor pode ser adiado até que a ligação seja restaurada.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também