Pular para o conteúdo principal

Referência do payload OSNotification

Esta página explica a estrutura e campos do payload de notificação push do OneSignal por meio da classe OSNotification. Use esta referência ao receber ou manipular notificações em seu aplicativo móvel.
Os payloads de notificação push são limitados a 4096 bytes. Para evitar truncamento, mantenha payloads abaixo de 3500 bytes. O campo additionalData é limitado a 2048 bytes.

Acessando OSNotification no seu aplicativo

Todos os SDKs do OneSignal acionam um listener de evento de notificação que retorna um objeto OSNotification.
  • Android: OneSignal.setNotificationWillShowInForegroundHandler(...)
  • iOS: notificationReceivedBlock ou UNNotificationServiceExtension
Use este objeto para acessar o título, corpo, dados e outras propriedades da notificação. A classe OSNotification fornece todos os dados de payload de notificação acessíveis dentro dos listeners de evento de notificação do SDK. Ela mescla as classes originais OSNotification e OSNotificationPayload em uma única interface baseada em getters.

Campos do Android

PropertyTypeDescription
getBody()StringTexto do corpo da notificação.
getTitle()StringTítulo da notificação.
getLaunchURL()StringURL aberto quando a notificação é clicada.
getNotificationId()StringUUID da notificação do OneSignal.
getAdditionalData()JSONObjectDados personalizados chave-valor definidos via painel ou REST API. Máx. 2048 bytes.
getTemplateId()StringUUID do template, se enviado usando templates.
getAndroidNotificationId()intID de notificação nativa do Android.
getLargeIcon()StringURL ou nome do recurso do ícone grande.
getSmallIcon()StringNome do recurso do ícone pequeno.
getSmallIconAccentColor()StringCor de destaque do ícone no formato ARGB.
getSound()StringNome do recurso de som reproduzido.
getCollapseId()StringChave de colapso para substituição de notificação.
getPriority()intPrioridade do Android (-2 a 2).
getLedColor()StringCor do LED no formato ARGB.
getLockScreenVisibility()intVisibilidade na tela de bloqueio: 1 = público, 0 = privado, -1 = secreto.
getFromProjectNumber()StringNúmero do projeto remetente.
getGroupedNotifications()List<OSNotification>Notificações incluídas em um resumo.
getGroupKey()StringChave de grupo usada em resumos.
getGroupMessage()StringTexto do resumo.
getBackgroundImageLayout()BackgroundImageLayoutObjeto para layout de imagem de fundo e cores de texto.
getActionButtons()List<ActionButton>Botões de ação com ícone, texto e ID.
getRawPayload()StringString JSON bruto completo do payload.

Campos do iOS

PropertyTypeDescription
bodyNSStringTexto do corpo da notificação.
titleNSStringTítulo da notificação.
launchURLNSStringURL aberto quando a notificação é clicada.
notificationIdNSStringUUID da notificação do OneSignal.
additionalDataDictionarydata personalizado chave-valor definido via painel ou REST API. Máx. 2048 bytes.
templateIdNSStringUUID do template, se enviado usando templates.
subtitleNSStringTexto do subtítulo.
categoryNSStringIdentificador de categoria do iOS.
threadIdNSStringUsado para agrupar notificações em threads (iOS 10+).
badgeNSIntegerValor absoluto do badge.
badgeIncrementNSIntegerQuantidade para incrementar o badge.
contentAvailableBOOLSe content-available=1, aciona busca em segundo plano.
mutableContentBOOLSe mutable-content=1, aciona uma Notification Service Extension.
actionButtonsNSArrayBotões de ação do iOS.
rawPayloadNSDictionaryJSON bruto completo do payload.
parseWithApnsMethodConverte payload APNS bruto em um OSNotification. Use em extensões de serviço.

OSNotificationAction (eventos de clique)

Descreve a interação do usuário com a notificação.
PropertyTypeDescription
actionIdStringO ID do botão de ação clicado.
typeenumOpened (toque padrão) ou ActionTaken (toque no botão).

Estrutura de payload personalizado do OneSignal

Todas as notificações do OneSignal incluem um objeto especial "custom" no payload:
{
  "custom": {
    "i": "the-notification-id"
  }
}
Esta chave é necessária para que os SDKs do OneSignal processem a notificação. Se estiver ausente, as notificações não acionarão eventos de clique ou análises.Se estiver enviando um push de um serviço diferente para um dispositivo que já usa o OneSignal, evite duplicar notificações.

Opcional: mover additionalData para a raiz do APNS

Para aplicativos iOS, você pode disponibilizar additionalData na raiz do payload do APNS para facilitar o acesso em manipuladores personalizados.
  1. Habilite nas configurações do aplicativo Use a API Update an app e defina:
{
  "additional_data_is_root_payload": true
}
  1. Envie push com data Ele estará disponível na raiz do payload do APNS. Exemplo:
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Agora você pode acessar diretamente promo_code sem verificar o dicionário personalizado.

Notificações restauradas

As notificações serão restauradas pelo SDK Android após uma reinicialização ou reinicialização do aplicativo.
PropertyTypeDescription
restoringbooleantrue se a notificação foi restaurada após reinicialização do dispositivo/aplicativo.
As notificações restauradas podem ser ignoradas usando a flag restoring. Para evitar restaurar conteúdo antigo, defina um TTL (tempo de vida) curto ou 0 em suas notificações.

Tópicos relacionados