Pular para o conteúdo principal
Badges são os pequenos pontos numerados que aparecem no ícone do seu aplicativo móvel. Eles ajudam a capturar a atenção do usuário e podem influenciar o comportamento de engajamento. No iOS em particular, badges requerem configuração adicional e oferecem controle flexível, conforme descrito abaixo.
Para notificações Android Web Push, o badge se refere ao pequeno ícone mostrado nas notificações—não no ícone do aplicativo—e pode ser personalizado. Veja Web Push Badges.

Badges do Android

O comportamento de badge do ícone de aplicativo Android pode ser gerenciado através de categorias de notificação do Android. Você pode controlar se uma categoria (canal) exibe um badge e definir o comportamento do badge por categoria.

Badges Huawei

Em dispositivos Huawei, um badge pode ser exibido como um número ou um ponto no ícone do aplicativo, dependendo das configurações do dispositivo do usuário. Badges ajudam a indicar mensagens não lidas ou ações pendentes, encorajando os usuários a abrir o aplicativo. O OneSignal permite que você controle as contagens de badges Huawei diretamente através do painel ou API.

Como os badges Huawei funcionam

  • O badge é exibido no ícone do seu aplicativo como uma contagem numérica ou um ponto, dependendo da configuração de exibição de badge no nível do dispositivo do usuário (controlada em Configurações > Notificações > Badges de ícone de aplicativo do dispositivo). Sua chamada de API controla a contagem subjacente; o dispositivo decide o estilo visual.
  • huawei_badge_class é obrigatório para qualquer operação de badge. Este é o nome de classe totalmente qualificado da Activity de entrada do seu aplicativo no formato <package_name>.<ActivityName> (por exemplo, com.example.myapp.MainActivity). Ele informa ao sistema Huawei a qual ícone de aplicativo aplicar o badge.
  • Se você definir tanto huawei_badge_set_num quanto huawei_badge_add_num na mesma solicitação, huawei_badge_set_num tem prioridade.
  • Se nem huawei_badge_set_num nem huawei_badge_add_num for fornecido (mas huawei_badge_class estiver definido), a contagem de badge incrementa em 1 por padrão.
  • huawei_badge_set_num aceita valores de 0 a 99. Definir como 0 limpa o badge.
  • huawei_badge_add_num aceita valores de 1 a 99. Por exemplo, se o aplicativo atualmente mostra um badge de 5 e você envia huawei_badge_add_num: 3, o badge se torna 8.

Enviar push Huawei com badges

  1. Vá para Messages > Push ou Templates
  2. Em Platform Settings > Send to Huawei Android > Badge
  3. Escolha uma das seguintes opções:
    • Não definir — o badge não é afetado por esta notificação
    • Definir para — define o badge para um número específico (0-99)
    • Aumentar em — incrementa a contagem de badge existente (1-99)

Limpando badges

A Huawei não limpa automaticamente o badge quando um usuário abre o aplicativo ou toca em uma notificação. Para limpar o badge, você tem duas opções:
  • Via API ou painel: Envie uma notificação com huawei_badge_set_num definido como 0 (ou use Definir para > 0 no painel). Pode ser uma notificação de dados/em segundo plano se você não quiser que uma notificação visível apareça.
  • Via código do lado do cliente: Seu aplicativo pode limpar o badge localmente usando a API de badge da Huawei. Isso requer a permissão com.huawei.android.launcher.permission.CHANGE_BADGE em seu AndroidManifest.xml. Consulte o guia de desenvolvimento de badges da Huawei para detalhes de implementação.
O parâmetro huawei_badge_set_num requer EMUI 10.0.0 ou posterior e Push SDK 10.1.0 ou posterior. Em dispositivos mais antigos, apenas huawei_badge_add_num é suportado.

Badges do iOS

Para garantir que as contagens de badge incrementem corretamente no iOS, você deve configurar:
  • O OneSignalNotificationServiceExtension
  • App Groups
Veja Configuração do SDK móvel para instruções completas. Por padrão, o SDK do OneSignal irá:
  1. Limpar o badge do ícone do aplicativo quando o aplicativo é aberto.
  2. Remover notificações da Central de Notificações.
Se você quiser manter as notificações e gerenciar a lógica de badge manualmente (por exemplo, usando seu próprio contador ou sincronizando o estado entre dispositivos), você pode desabilitar esse comportamento automático. Casos de uso comuns para controle manual de badge
  • Redefinir badge quando o aplicativo é iniciado ou retomado
  • Incrementar badge quando uma notificação é recebida em primeiro plano
  • Decrementar quando uma mensagem é lida ou descartada
  • Sincronizar estado de badge entre dispositivos ou extensões de aplicativo via App Groups ou seu backend

Desabilitar notificação automática e limpeza de badge

No info.plist do seu aplicativo, adicione a chave: OneSignal_disable_badge_clearing com tipo Boolean para o valor YES
<key>OneSignal_disable_badge_clearing</key>
<true/>
Isso impede que o SDK remova automaticamente notificações ou redefina o badge quando o aplicativo abre.

Gerenciamento nativo de badge do iOS

Se você desabilitar a limpeza automática de badge do OneSignal, você pode usar as APIs nativas da Apple para controlar o comportamento do badge.
A Apple descontinuou UIApplication.shared.applicationIconBadgeNumber no iOS 17. Você deve agora usar os seguintes métodos do framework UserNotifications:
Definir contagem de badge Para definir o badge no ícone do aplicativo para um valor específico:
Swift
import UserNotifications
import UIKit

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(5) { error in
    if let error = error {
      print("Failed to set badge count: \(error.localizedDescription)")
    } else {
      print("Badge count updated successfully.")
    }
  }
} else {
  UIApplication.shared.applicationIconBadgeNumber = 5
}
Obter contagem atual de badge O iOS não fornece um método para recuperar a contagem atual de badge do sistema. Você deve rastrear a contagem de badge no estado do seu aplicativo (por exemplo, usando UserDefaults, o modelo de dados do seu aplicativo ou sincronizando com seu backend).
Swift
// Example: Store and retrieve badge count using UserDefaults
let badgeCount = UserDefaults.standard.integer(forKey: "badgeCount")
// Update badge count as needed
UserDefaults.standard.set(badgeCount, forKey: "badgeCount")
Incrementar ou decrementar badge Você deve gerenciar a lógica de badge manualmente, pois mudanças relativas (como +1 ou -1) não são suportadas em payloads. Atualize sua contagem de badge armazenada e então defina-a:
Swift
// Example: Increment badge count and update system badge
let currentCount = UserDefaults.standard.integer(forKey: "badgeCount")
let updatedCount = max(0, currentCount + 1)
UserDefaults.standard.set(updatedCount, forKey: "badgeCount")

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(updatedCount)
} else {
  UIApplication.shared.applicationIconBadgeNumber = updatedCount
}
Limpar badge Para remover o badge completamente:
Swift

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(0)
} else {
  UIApplication.shared.applicationIconBadgeNumber = 0
}

Enviar push do iOS com badges

Você pode definir a contagem de badge no painel do OneSignal ou usando a API.
  1. Vá para Messages > Push ou Templates
  2. Em Platform Settings > Send to Apple iOS > Badges
  3. Escolha:
    • Definir para um número específico
    • Aumentar por uma quantidade relativa
Ao enviar notificações push do iOS, a contagem de badge mudará com base nessas opções. Se o aplicativo estiver aberto, a contagem de badge será redefinida a menos que você tenha seguido as instruções acima para desabilitar a limpeza automática de badge.
Tutorial de badges concluído! Próximos passos: