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 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

Exemplo info.plist com ` OneSignal_disable_badge_clearing` desligado (definido como `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.
  • Dashboard
  • 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

Definir badges no formulário de mensagem do painel do OneSignal.

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: