Pular para o conteúdo principal
A classe OSNotification representa o payload de notificação push nos SDKs do OneSignal. Use-a para acessar o título da notificação, corpo, dados personalizados e propriedades específicas da plataforma ao lidar com notificações no seu aplicativo.
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 fornecem um listener de evento de notificação que retorna um objeto OSNotification:

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 = public, 0 = private, -1 = secret.
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 você enviar pushes de outro serviço para dispositivos que também usam o OneSignal, filtre por esta chave para evitar processamento duplicado. Consulte Push payload handling para mais informações.

Mover additionalData para a raiz do APNS

Para aplicativos iOS, você pode colocar campos additionalData na raiz do payload do APNS em vez de dentro do dicionário custom. Isso simplifica o acesso em manipuladores de notificação personalizados. 1. Habilite via API Use a Update an app API e defina:
{
  "additional_data_is_root_payload": true
}
2. Envie um push com data Os campos data aparecerão na raiz do payload do APNS:
{
  "aps": {
    "alert": { "title": "Sale", "body": "20% off all items!" }
  },
  "promo_code": "SPRING20"
}
Agora você pode acessar promo_code diretamente sem verificar o dicionário custom.

Notificações restauradas (Android)

O SDK Android restaura notificações após uma reinicialização do dispositivo ou do aplicativo.
PropertyTypeDescription
restoringbooleantrue se a notificação foi restaurada após reinicialização do dispositivo/aplicativo.
Verifique a flag restoring para ignorar notificações restauradas. Para evitar que notificações antigas sejam restauradas por completo, defina um TTL (tempo de vida) curto ou 0 ao enviar.

Formatos de push token

  • iOS Push (APNS): 64 caracteres, apenas hexadecimal (0-9, a-f). deviceToken.map {String(format: "%02x", $0)}.joined()
  • Android Push (FCM): Normalmente 163 caracteres, alfanumérico, pode conter hifens, dois-pontos e sublinhados.

FAQ

Qual é o tamanho máximo do payload?

Os payloads de notificação push são limitados a 4096 bytes no total. O campo additionalData é limitado a 2048 bytes. Para evitar truncamento, mantenha seu payload total abaixo de 3500 bytes.

Como identifico uma notificação do OneSignal no payload bruto?

Todas as notificações do OneSignal incluem um objeto "custom" com uma chave "i" contendo o ID da notificação. Verifique essa chave para distinguir notificações do OneSignal daquelas enviadas por outros provedores.

Posso acessar additionalData na raiz do payload do APNS?

Sim. Habilite additional_data_is_root_payload via Update an app API para colocar campos additionalData na raiz do APNS em vez de dentro do dicionário custom. Consulte Mover additionalData para a raiz do APNS para mais detalhes.

Categorias de notificação do Android

Configure canais de notificação para dispositivos Android 8.0+.

Mobile Service Extensions

Adicione mídia rica, badges e rastreamento de entrega confirmada.

Referência do SDK móvel

Referência completa dos métodos e listeners do SDK móvel do OneSignal.