> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notificações de dados e em segundo plano

> Envie notificações push silenciosas para sincronizar dados ou acionar tarefas em segundo plano no iOS e Android sem exibir uma mensagem visível.

## O que são notificações silenciosas?

Notificações silenciosas permitem despertar seu aplicativo e executar tarefas em segundo plano—como sincronização ou atualização de dados—sem exibir uma mensagem visível ou reproduzir um som.

No iOS, são chamadas de **Notificações em Segundo Plano**, e no Android, são conhecidas como **Notificações de Dados**. Juntas, são frequentemente chamadas de pushes silenciosos e se comportam de forma diferente das notificações normais e visíveis.

### Limitações

* **Aplicativos não podem receber pushes silenciosos** se:
  * **iOS**: O aplicativo foi fechado pelo usuário, como quando deslizado para fora do seletor de aplicativos. (Consulte [Suporte Apple](https://support.apple.com/en-us/HT201330)).
  * **Android**: O aplicativo foi forçadamente fechado através das configurações do dispositivo ou automaticamente por alguns fabricantes quando deslizado para fora. ([Mais detalhes aqui](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped)).
* **A entrega não é garantida**:
  * Tanto a Apple quanto o Google tratam notificações silenciosas como *melhor esforço*. O iOS pode atrasar ou descartar a entrega no Modo de Baixa Energia, com a Atualização de App em Segundo Plano desativada ou se o aplicativo foi fechado pelo usuário. O Android pode limitar ou agrupar a entrega sob regras de Doze ou de economia de energia do OEM.
  * Devido a isso, **notificações silenciosas nunca devem ser usadas para atualizações críticas**.
* **Apenas usuários inscritos**: O SDK do OneSignal envia notificações de dados apenas para [Assinaturas](./subscriptions) inscritas. Para alcançar usuários não inscritos, siga [esta solução alternativa](https://github.com/OneSignal/OneSignal-iOS-SDK/issues/302).
* **Suporte limitado para SDKs multiplataforma**:
  * Notificações silenciosas devem ser tratadas em código nativo (Java/Kotlin para Android, Swift/Obj-C para iOS).
  * iOS requer implementação de [`application:didReceiveRemoteNotification:fetchCompletionHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).
  * Android requer implementação de uma [Extensão de Serviço de Notificação](./service-extensions).

***

## Enviando notificações silenciosas do OneSignal

Siga estas etapas para enviar uma notificação silenciosa do OneSignal:

<Steps>
  <Step title="Omitir conteúdo visível">
    Remova qualquer texto ou títulos visíveis da mensagem. Isso inclui:

    * **API**: `contents`, `headings`, `subtitle` na sua solicitação da API [Create notification](/reference/create-message).
    * **Dashboard**: Message, Title, Subtitle
  </Step>

  <Step title="Definir content_available">
    * **API**: Defina `content_available` como `true`.
    * **Dashboard**: Marque **Content available** em "Send to Apple iOS". Isso é aplicável para todas as plataformas e apenas informa ao nosso sistema que nenhuma mensagem está sendo enviada.
  </Step>

  <Step title="Adicionar dados à notificação">
    * **API**: Use o parâmetro `data`.
    * **Dashboard**: Use os campos **Additional Data**.
  </Step>
</Steps>

### Exemplo de payload de API

```bash theme={null}
curl -X POST https://api.onesignal.com/notifications \
  -H "Authorization: Key YOUR_APP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "YOUR_APP_ID",
    "include_aliases": { "external_id": ["user-123"] },
    "target_channel": "push",
    "content_available": true,
    "data": {
      "action": "sync_data",
      "version": "2"
    }
  }'
```

***

## Configuração específica da plataforma

### Configuração de notificação em segundo plano do iOS

Para lidar com notificações em segundo plano, seu aplicativo iOS deve ter a capacidade **Background Modes > Remote Notifications** habilitada no Xcode. Isso é tipicamente incluído se você seguiu nossa [Configuração do SDK Móvel](./mobile-sdk-setup).

Para processar a notificação, implemente o método `AppDelegate` [`application(_:didReceiveRemoteNotification:fetchCompletionHandler:)`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623013-application).

Documentação da Apple:

* [Pushing Background Updates to Your App](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app?language=objc)
* [Generating a Remote Notification](https://developer.apple.com/documentation/usernotifications/generating-a-remote-notification)

<Warning>
  Se o usuário fechou o aplicativo (deslizou para fora do seletor de aplicativos), o iOS não entregará a notificação.

  Nesses casos, inclua uma mensagem `contents` visível e processe os dados no [`UNNotificationServiceExtension.didReceive`](./service-extensions#ios-notification-service-extension).
</Warning>

***

### Configuração de notificação de dados do Android

Manipule notificações de dados no Android usando a [Extensão de Serviço de Notificação](./service-extensions).

Isso permite:

* Processar notificações desde que o aplicativo não tenha sido forçadamente fechado
* Personalizar como as notificações são exibidas ou suprimidas

Documentação Android:

* [Mensagens de dados FCM](https://firebase.google.com/docs/cloud-messaging/concept-options#data_messages)
* [Otimizar para Doze e App Standby](https://developer.android.com/training/monitoring-device-state/doze-standby)

<Warning>
  Se o aplicativo foi forçadamente interrompido (via configurações do dispositivo ou por alguma otimização de bateria do OEM), o Android não entregará a notificação. Consulte o [comportamento de força-parada do Android](./notifications-show-successful-but-are-not-being-shown#android-app-is-force-stopped).
</Warning>

***

## Enviando notificações VoIP

Notificações VoIP são suportadas, mas requerem configuração adicional fora dos SDKs padrão do OneSignal. O OneSignal não registra tokens VoIP automaticamente.

<Card title="Guia de Configuração de Notificações VoIP" icon="phone" href="./voip-notifications">
  Configure notificações push VoIP para chamadas em tempo real no iOS.
</Card>

***

## FAQ

### Notificações silenciosas podem ser usadas para detectar desinstalações ou cancelamentos de assinatura?

Tecnicamente sim, mas não é confiável. Como explicado na seção [Limitações](#limitações) acima, notificações silenciosas não são garantidas para serem entregues.

Em vez disso:

* Envie notificações visíveis (com conteúdo) para todos os seus usuários pelo menos uma vez por mês.
* Opcionalmente, envie notificações silenciosas como uma verificação complementar.

Para mais detalhes sobre como lidar com mudanças no status de assinatura, consulte nosso guia [Assinaturas](./subscriptions).

### Entregas confirmadas funcionam com notificações silenciosas?

Entregas confirmadas não funcionam com notificações silenciosas.

### Posso usar notificações silenciosas para medir quantos usuários são alcançáveis?

Não, não de forma confiável. Notificações silenciosas não têm entrega garantida.

1. **A entrega não é garantida** — tanto a Apple quanto o Google tratam notificações silenciosas como melhor esforço e podem atrasá-las ou descartá-las. Por exemplo, o iOS as descartará se o aplicativo estiver fechado (força-parada) e o Android e iOS as limitarão sob regras de economia de energia.

2. **A entrega não é confirmada** — entregas confirmadas não funcionam com notificações silenciosas, portanto não há como saber quais usuários realmente receberam o push.

Para medir usuários alcançáveis, envie uma notificação visível e acompanhe as métricas de entrega em [Analytics](./analytics-overview).

***

<Columns cols={2}>
  <Card title="Extensões de serviço" icon="puzzle-piece" href="./service-extensions">
    Processe notificações em código nativo no iOS e Android.
  </Card>

  <Card title="Assinaturas" icon="address-book" href="./subscriptions">
    Entenda os tipos de assinatura e como eles se conectam aos usuários.
  </Card>

  <Card title="API de Criação de Mensagem" icon="code" href="/reference/create-message">
    Envie notificações programaticamente, incluindo pushes silenciosos.
  </Card>
</Columns>
