Requisitos
- Seu aplicativo deve usar a versão mais recente do SDK OneSignal.
- Usuários Android devem ter permissões de notificação push habilitadas.
Notificações ao vivo vs. push padrão
Diferente das notificações push regulares, que enviam uma nova notificação cada vez, as Notificações ao Vivo usam uma única notificação atualizada ao longo do tempo. As atualizações são enviadas via API Create Message usando o mesmocollapse_id.
Configuração
1. Implementar uma Extensão de Serviço de Notificação
Crie uma classeNotificationServiceExtension que implementa INotificationServiceExtension. Esta classe intercepta notificações recebidas e pode modificá-las ou substituí-las.
Consulte Extensão de Serviço de Notificação Android para mais detalhes.
NotificationServiceExtention.kt
2. Adicionar a extensão ao Android Manifest
3. Criar tipos de Notificação ao Vivo
Um Tipo de Notificação ao Vivo indica qual Notificação ao Vivo iniciar.Definir chaves
As Notificações ao Vivo são referenciadas por umakey, que determina como as atualizações são roteadas.
NotificationServiceExtention.kt
Criar canais de notificação
Os canais definem como as notificações se comportam (som, vibração, aparência). Você deve criar canais para seus tipos de Notificação ao Vivo. Recomendamos:- Baixa Importância para notificações de progresso
- Desabilitar badges
- Manter som e vibração ao mínimo
Projetar a Notificação ao Vivo
Ao projetar uma Notificação ao Vivo, você tem a flexibilidade de criar um design de notificação para cada tipo de atualização. Cada design que você criar deve ser atribuído a um tipo específico, permitindo apresentações variadas de uma Notificação ao Vivo.NotificationServiceExtention.kt
- Ícone pequeno e cor de destaque
- Ícone grande
- Imagem grande
- Botões de ação
Veja Layout de notificação personalizada Android para opções de design avançadas.
4. Extrair o payload da Notificação ao Vivo
As Notificações ao Vivo usam o campoadditional_data para passar conteúdo estruturado.
NotificationServiceExtention.kt
Schema da Notificação ao Vivo
| Propriedade | Obrigatória | Descrição |
|---|---|---|
key | Sim | Usado para carregar a IU de notificação correta. |
event | Sim | A ação a executar na Notificação ao Vivo. |
event_attributes | Não | Dados estáticos usados para inicializar a Notificação ao Vivo; um schema autodefinido que define os dados que sua notificação precisa. |
event_updates | Não | Conteúdo dinâmico da Notificação ao Vivo. Deve estar em conformidade com a interface ContentState definida dentro da Notificação ao Vivo do seu aplicativo. |
Example Live Notification Payload
5. Tratar eventos de Notificação ao Vivo
Cada Notificação ao Vivo deve responder aos seguintes eventos:| Evento | Descrição | Campos obrigatórios |
|---|---|---|
start | Inicia uma Notificação ao Vivo com dados estáticos e dinâmicos. | event_attributes, event_updates |
update | Atualiza a Notificação ao Vivo com novos dados dinâmicos. | event_updates |
end | Termina e remove a Notificação ao Vivo. | Nenhum |
NotificationServiceExtention.kt
Iniciar uma Notificação ao Vivo
Quando estiver pronto para iniciar uma Notificação ao Vivo:- Defina
event_attributespara inicializar os dados estáticos para a Notificação ao Vivo. Esses dados não mudarão durante o tempo de vida da Notificação ao Vivo. - Defina dados
event_updatespara inicializar os dados dinâmicos para a Notificação ao Vivo. Estes são os dados que podem e irão mudar durante o tempo de vida da Notificação ao Vivo. - Um
collapse_idpara garantir que cada atualização substitua a anterior. Este ID deve ser único para a Notificação ao Vivo para garantir que atualizações subsequentes sejam refletidas na mesma notificação.
curl
Atualizar Notificação ao Vivo
Você pode atualizar a Notificação ao Vivo quantas vezes quiser, desde que seja iniciada primeiro.- Defina dados
event_updatespara inicializar os dados dinâmicos para a Notificação ao Vivo. Estes são os dados que podem e irão mudar durante o tempo de vida da Notificação ao Vivo e informam com o que atualizar o conteúdo da sua Notificação ao Vivo.
curl
Encerrar Notificação ao Vivo
Exemplo de solicitação cURLcurl
Você criou com sucesso uma Notificação ao Vivo!Documentos relacionados: