Skip to main content
Defina ícones de notificação push para que os usuários reconheçam seu aplicativo na área de notificações e na tela de bloqueio. Android, iOS e Web usam, cada um, uma fonte de ícone diferente. Para imagens grandes anexadas a notificações, consulte Imagens e Rich Media.
Notificação push com um ícone de badge pequeno, ícone grande e imagem

Exemplo de uma notificação Web Push do Android Chrome com ícone de badge pequeno, ícone grande e imagem.

Ícones de notificação Android

O Android (incluindo dispositivos Amazon e Huawei) suporta ícones de notificação pequenos e grandes. No Android 8.0+ (API 26+), as categorias de notificação e a interface do fabricante também afetam a aparência da notificação. O Android também suporta Notificações de Conversa que podem mostrar a imagem de perfil de uma pessoa no lugar do seu ícone.
Notificação Android mostrando o posicionamento do ícone pequeno, do ícone grande e da cor de destaque

Ícones de notificação pequenos

O ícone de notificação pequeno é obrigatório. Ele aparece na barra de status como uma silhueta monocromática. Se você não fornecer um ícone pequeno personalizado, o OneSignal usa um ícone de sino padrão. O posicionamento do ícone na notificação muda no Android 17 (API 37). Consulte Ícone de inicialização na notificação. O Android renderiza ícones de notificação pequenos usando o canal alfa do ícone, não seus dados de cor. A partir do Android 12 (API 31), o sistema tinge essa silhueta com a cor de destaque de notificação que você define. Se você não definir uma cor, ele usa a cor do tema do sistema. Consulte Design de notificações do Android. Requisitos:
  • Use um ícone de silhueta monocromática em um fundo transparente
  • Projete o ícone de forma que a forma seja definida por transparência, não por cor
  • Evite gradientes, sombras ou arte multicolorida
  • Mantenha o design simples e reconhecível em tamanhos muito pequenos
Uma abordagem comum é arte branca em um fundo transparente. O Android usa a máscara alfa, não a cor branca em si.
Ícones com fundos sólidos ou arte em cores completas frequentemente são renderizados como um quadrado branco, uma forma recortada ou uma silhueta inesperada. O Android ignora a cor em ícones de notificação pequenos e deriva a aparência do canal alfa mais a tonalização do sistema ou do aplicativo.
Você não pode forçar um ícone pequeno em cores completas no Android padrão (stock). Os layouts de notificação personalizados no Android 12 (API 31) e mais recente ainda mostram o ícone pequeno tingido pelo sistema. Alguns fabricantes ignoram o canal alfa e mostram uma imagem em cores completas. Não dependa disso. Sempre inclua um ícone de canal alfa em conformidade.

Ícone de inicialização na notificação (Android 17)

A partir do Android 17 (API 37), o Android mostra o ícone de inicialização do seu aplicativo na notificação em vez do ícone pequeno. O ícone pequeno ainda aparece na barra de status. Esse é um comportamento do sistema Android que se aplica a todas as notificações, e a aparência exata pode variar de acordo com o fabricante do dispositivo. Para mostrar o ícone pequeno na notificação em vez disso, defina o extra EXTRA_PREFER_SMALL_ICON do Android. O SDK do OneSignal não define esse extra por padrão. Adicione-o na sua extensão de serviço de notificação. Anote a classe com @Keep e registre-a no manifesto conforme mostrado naquela página.
A chave em string funciona com qualquer versão de compileSdk. O Android 16 (API 36) e versões anteriores ignoram o extra, portanto é seguro defini-lo incondicionalmente.

Cor de destaque do ícone pequeno

Você pode definir a cor de destaque da notificação que o Android 12 (API 31) e versões mais recentes usam para tingir o ícone pequeno. Ela corresponde ao Notification.color (setColor) do Android. Não é o mesmo que colorir o fundo da notificação (setColorized), que o Android reserva para tarefas contínuas de alta prioridade. A cor de destaque é uma propriedade por notificação, não uma propriedade de canal. As categorias de notificação Android controlam som, importância, vibração, cor do LED e badges. As categorias não têm configuração de cor de destaque, e sua cor de destaque se aplica independentemente de em qual categoria a notificação é exibida.
No Android 17 (API 37) e mais recente, a cor de destaque pode não aparecer na notificação quando o ícone de inicialização está sendo exibido. O ícone pequeno na barra de status ainda é tingido.
Notificação Android mostrando a cor de destaque do ícone pequeno
O SDK resolve a cor de destaque nesta ordem. O primeiro valor encontrado vence:
  1. Por mensagem: o parâmetro android_accent_color (Google Android) ou huawei_accent_color (Huawei) na API Criar mensagem, ou o campo Accent color em Messages > Push > New Push > Platform Settings > Google Android Options.
  2. Padrão do aplicativo via recursos: o recurso de string onesignal_notification_accent_color.
  3. Padrão do aplicativo via manifesto: a entrada meta-data com.onesignal.NotificationAccentColor.DEFAULT no AndroidManifest.xml.
Use um valor hexadecimal ARGB sem # (por exemplo, FF00FF00). Você pode pré-visualizar cores no Android Asset Studio. Para definir uma cor padrão com recursos, adicione a seguinte linha ao seu arquivo res/values/strings.xml. Para uma cor diferente no modo escuro, adicione a mesma chave ao res/values-night/strings.xml.
Para definir o padrão no manifesto em vez disso, adicione isto dentro da tag <application>:
Para controle total no momento da exibição, defina a cor a partir de uma extensão de serviço de notificação usando notification.setExtender com builder.setColor(). O extender é executado depois que o SDK aplica os valores acima, portanto ele substitui todos eles.

Ícones de notificação grandes

O ícone grande é opcional. Ele aparece no lado direito da notificação. A orientação de design do Android é usá-lo apenas quando a imagem reforça o conteúdo da notificação, como a foto de um remetente, o logotipo de uma fonte de terceiros ou um símbolo significativo. Não use o ícone grande como um segundo ícone de aplicativo ou para branding. Consulte The large icon.
  • Tamanho recomendado: 256×256 pixels
  • Formato: PNG ou JPG
  • Cor é permitida. Somente alfa não é obrigatório.
Se você não definir um ícone grande, esse espaço fica vazio no Android padrão. Alguns fabricantes mostram o ícone de inicialização do aplicativo em vez disso.

Como adicionar ícones padrão do Android

Configure ícones padrão para cada aplicativo baseado em Android (Google Play, Amazon, Huawei). Conclua primeiro a Configuração do SDK Android (ou sua configuração multiplataforma). Adicione os arquivos aos diretórios de recursos do seu projeto (ou a uma configuração de plugin para o Expo), recompile e lance. Arquivos ausentes ou nomeados incorretamente são a causa mais comum de renderização quebrada. Os ícones padrão são incluídos no binário do aplicativo. Eles não são enviados para o dashboard do OneSignal. Depois de lançar, aguarde até que a maioria dos usuários atualize antes de enviar notificações que dependam de um novo nome de ícone.
1

Gerar o ícone de notificação pequeno

Gere uma silhueta em um fundo transparente usando o Android Asset Studio – Ícones de Notificação. Siga os requisitos do ícone pequeno.Nomeie o ícone: ic_stat_onesignal_default
2

Criar tamanhos de ícone pequeno obrigatórios

Inclua todas as variantes de densidade para o ícone pequeno. A falta de qualquer tamanho pode fazer com que o Android recorra a um ícone padrão do sistema. Esses tamanhos são 24dp em cada densidade, que é o tamanho de ícone da barra de status do Android.
3

Gerar o ícone de notificação grande (opcional)

Use um PNG ou JPG de 256×256. Cor é permitida. Apenas um tamanho é necessário.Nome do arquivo obrigatório: ic_onesignal_large_icon_default.png
4

Colocar ícones nos caminhos corretos do projeto

Crie quaisquer pastas que estejam faltando. Coloque cada densidade do ícone pequeno em sua pasta drawable. Coloque o ícone grande em drawable-xxxhdpi/ ao lado do ícone pequeno XXXHDPI. Os dois arquivos compartilham uma pasta e usam nomes diferentes.
Ícones pequenos (ic_stat_onesignal_default):
  • res/drawable-mdpi/ (24×24)
  • res/drawable-hdpi/ (36×36)
  • res/drawable-xhdpi/ (48×48)
  • res/drawable-xxhdpi/ (72×72)
  • res/drawable-xxxhdpi/ (96×96)
Ícone grande (ic_onesignal_large_icon_default.png, 256×256):
  • res/drawable-xxxhdpi/
Seu projeto deve se parecer com isso (dependendo do seu SDK):
Estrutura de diretórios de um projeto Android mostrando arquivos de ícone nas pastas drawable

Projeto Android Native com arquivos de ícone nas pastas drawable

Seu aplicativo Android agora está configurado com ícones de notificação padrão. Se você vir um quadrado sólido ou o sino do OneSignal, consulte o FAQ.

Ícones de notificação iOS

As notificações iOS sempre usam o ícone do seu aplicativo. O sistema exibe uma versão grande desse ícone na borda inicial de cada notificação e o dimensiona a partir do ativo de ícone do seu aplicativo. Você não pode alterá-lo por mensagem. Para alterá-lo, atualize o ícone do aplicativo e lance uma nova versão do aplicativo. Consulte Human Interface Guidelines: Notifications.
O payload de APNs tem alert, badge e sound. Ele não tem campo para um ícone de notificação personalizado. A Apple ignora chaves personalizadas dentro do dicionário aps. Isso se aplica a notificações push padrão e Alertas Críticos. A interface de Live Activity pode mostrar suas próprias imagens por meio do ActivityKit. Isso não é um substituto para o ícone de notificação.

Notificações de Comunicação

No iOS 15 e mais recente, a Apple suporta Notificações de Comunicação para aplicativos de mensagens e chamadas. Depois de você doar um INSendMessageIntent ou INStartCallIntent, o sistema pode mostrar o avatar (INImage) do remetente ou de quem chama no lugar do ícone grande do aplicativo. O ícone do aplicativo ainda aparece como um pequeno badge sobre esse avatar. Isso requer a capability Communication Notifications, intents do SiriKit e uma Notification Service Extension para atualizar o conteúdo da notificação. Não está disponível para notificações de uso geral.

Ícones de notificação web

As notificações push web exibem um ícone fornecido no momento do envio ou definido como padrão nas configurações do seu site. Se nenhum ícone for fornecido, um ícone de sino padrão é usado.
  • Formatos suportados: PNG, JPG, GIF (não animado)
  • O ícone deve ser quadrado. O tamanho recomendado é de 256×256 pixels. O web.dev cita 64dp no Android, então 192×192 ou maior é o mínimo usual. 256×256 continua sendo o tamanho mais consistente entre Chrome, Firefox, Edge e Safari.
  • Navegadores e sistemas operacionais recortam e dimensionam o ícone de forma diferente. Chrome e Firefox usam a interface de notificação da plataforma onde ela existe.
Defina a Default Icon URL em Settings > Push & In-App > Web. Consulte Configuração do SDK Web. Você também pode substituir o ícone por notificação usando o dashboard ou a API REST. Consulte Enviar notificações com ícones não padrão.

Ícone de badge de web push do Android

No Android, o web push do Chrome pode mostrar um ícone de badge menor na barra de status quando não há espaço suficiente para a notificação completa. O OneSignal o envia com chrome_web_badge, que corresponde à opção badge da Notifications API. O Chrome no Android usa esse badge. Se você não definir um, o Chrome usa o ícone do navegador. Outros navegadores normalmente mostram o ícone do navegador. Consulte Notification: badge. Isso não é um badge de ícone de aplicativo (ponto ou número). Para esses, consulte Badges. Trate o badge como um ícone monocromático. O MDN afirma que o Android mascara automaticamente a imagem. Use uma silhueta em PNG quadrado em um fundo transparente (mesmas regras do ícone pequeno do Android). Evite texto, detalhes finos e arte em cores completas. O MDN recomenda cerca de 96×96 pixels para que a imagem se mantenha bem em 4x. 72×72 é o mínimo usual (24dp em 3x). Imagens maiores são reduzidas.
Barra de status do Android mostrando um ícone de badge de web push

Exemplo de como o ícone de badge é exibido na barra de status do Android.

Enviar notificações com ícones não padrão

Ao enviar push do dashboard do OneSignal ou da API REST, você pode substituir os ícones padrão para Android, Amazon, Huawei e Web Push. Você não pode substituir o ícone para notificações iOS.

Parâmetros da API REST

Android, Amazon e Huawei:
string
Nome do recurso do ícone sem a extensão do arquivo. A imagem deve existir nas mesmas pastas de projeto que o ícone pequeno padrão. URLs remotas não são suportadas. Consulte Como adicionar ícones padrão do Android.Para Amazon use adm_small_icon. Para Huawei use huawei_small_icon.Exemplo: "small_icon": "my_custom_icon"
string
Nome do recurso do ícone sem a extensão do arquivo, ou uma URL remota. Se você usar um nome de recurso, a imagem deve existir nas mesmas pastas de projeto que o ícone grande padrão. Consulte Como adicionar ícones padrão do Android.Para Amazon use adm_large_icon. Para Huawei use huawei_large_icon.Exemplo: "large_icon": "my_custom_icon"
Web Push:
string
URL direta para o recurso de imagem.Para Firefox use firefox_icon.Exemplo: "chrome_web_icon": "https://example.com/my_custom_icon.png"
string
URL direta para o recurso de imagem usado como badge da barra de status do Android para notificações web do Chrome.Exemplo: "chrome_web_badge": "https://example.com/badge.png"

Dashboard

Em Messages > Push > New Push ou Templates, abra as opções específicas da plataforma. Para Android, Amazon e Huawei, se o arquivo existir no mesmo caminho de projeto que o ícone padrão, defina os nomes dos ícones sem a extensão do arquivo. Para ícones de notificação grandes, você também pode fornecer uma URL direta.
Dashboard do OneSignal mostrando os campos de substituição de ícones nas configurações da plataforma Android

Dashboard do OneSignal, onde substituir os ícones padrão.

FAQ

Por que o meu ícone pequeno do Android aparece como um quadrado branco ou cinza?

A imagem não possui transparência adequada. O Android renderiza ícones de notificação pequenos usando apenas o canal alfa. Pixels totalmente opacos com um fundo sólido aparecem como um quadrado preenchido. Regenere o ícone como uma silhueta monocromática em um fundo transparente usando o Android Asset Studio.

Por que o ícone de sino do OneSignal aparece em vez do meu ícone personalizado?

Uma ou mais variantes de densidade obrigatórias do ícone pequeno estão faltando, foram colocadas no diretório drawable errado ou estão nomeadas incorretamente. Inclua todos os cinco tamanhos (MDPI a XXXHDPI) com o nome de arquivo exato ic_stat_onesignal_default. Consulte Como adicionar ícones padrão do Android para os caminhos corretos.

Por que as notificações mostram o ícone do meu aplicativo em vez do meu ícone pequeno?

A partir do Android 17 (API 37), o Android exibe por padrão o ícone de inicialização do aplicativo na notificação. O ícone pequeno ainda aparece na barra de status. Para mostrar o ícone pequeno na notificação, defina o extra EXTRA_PREFER_SMALL_ICON em uma extensão de serviço de notificação. Consulte Ícone de inicialização na notificação.

Posso alterar o ícone de notificação do iOS por mensagem?

Não. O iOS sempre usa o ícone do seu aplicativo para notificações push. O payload de APNs não tem campo de ícone. Alterar o ícone requer atualizar o ativo de ícone do seu aplicativo e lançar uma nova versão do aplicativo. Aplicativos de mensagens e chamadas podem mostrar um avatar do remetente apenas adotando Notificações de Comunicação.

Qual tamanho deve ter o meu ícone de web push?

Use uma imagem PNG, JPG ou GIF não animado quadrada de 256×256 pixels. Diferentes navegadores e sistemas operacionais podem recortar ou dimensionar o ícone, mas 256×256 é o tamanho mais consistente entre Chrome, Firefox, Edge e Safari.

Posso usar uma URL para o ícone pequeno do Android?

Não. O ícone pequeno do Android deve ser um arquivo de recurso local incluído no seu aplicativo. Apenas o ícone grande suporta URLs remotas.

Como adiciono ícones de notificação no Expo?

Use o onesignal-expo-plugin com um PNG de ícone pequeno de 96×96 e um PNG de ícone grande de 256×256 no app.json ou app.config.js. O plugin gera as variantes de densidade no momento do build. Consulte a aba Expo para a configuração.

Devo fazer upload dos ícones padrão para o dashboard do OneSignal?

Não. Os ícones de notificação padrão são incluídos dentro do binário do seu aplicativo, não enviados para o OneSignal. Você os adiciona aos diretórios de recursos do seu projeto (ou à configuração de plugin para o Expo), e o SDK do OneSignal os utiliza automaticamente. O dashboard do OneSignal permite apenas substituir ícones por mensagem para Android e Web Push.

Relacionado

Imagens e rich media

Anexe imagens grandes, GIFs e vídeos a notificações push.

Configuração do SDK Android

Instale o SDK Android e depois adicione ícones de notificação padrão nas suas pastas drawable.

Configuração do SDK React Native / Expo

Configure smallIcons e largeIcons no plugin Expo do OneSignal.

Categorias de notificação Android

Crie e gerencie canais de notificação Android para som, vibração e importância.

Configuração do SDK Web

Defina a Default Icon URL em Settings > Push & In-App > Web.

API Criar mensagem

Envie notificações push com ícones personalizados usando a API REST.