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

# Botões de ação para notificações push

> Adicione botões de ação interativos às suas notificações push no iOS, Android e na web. Aprenda a configuração via Painel e API, plataformas suportadas, manipulação de cliques, ícones e rastreamento de eventos.

<Frame caption="Imagem mostrando botões de ação no iOS">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c40c0d1-ios15-action-icons--1.jpeg?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=51965abdd020931ca08de3f44dd96370" width="1000" height="580" data-path="images/docs/c40c0d1-ios15-action-icons--1.jpeg" />
</Frame>

<Info>
  Este guia aplica-se apenas a notificações push. Para mensagens no aplicativo, consulte [Mensagens no Aplicativo: Como adicionar Ações de Clique](./iam-click-actions).
</Info>

Os Botões de Ação permitem adicionar múltiplas ações rotuladas a uma única notificação push, para que os usuários possam responder sem abrir seu aplicativo ou site primeiro. Dependendo do sistema operacional e dispositivo, os usuários revelam os botões expandindo a notificação (pressão longa, deslizar + Visualizar ou uma opção de expandir).

***

## Adicionar botões de ação

Você pode configurar Botões de Ação em [Modelos](./templates), diretamente ao compor uma mensagem no painel ou via [API](/reference/push-notification).

### Configuração do painel e modelo

Ao criar um push, abra **Opções Avançadas > Botões de Ação**.

<Frame caption="Imagem mostrando botões de ação a serem adicionados para iOS e Android">
  <img src="https://mintcdn.com/onesignal/MUgio66t0sYhGEvj/images/docs/64712e6-Screenshot_2023-06-02_at_1.53.48_PM.png?fit=max&auto=format&n=MUgio66t0sYhGEvj&q=85&s=b2bb426793efd74cf713471e75894fc3" width="1614" height="1588" data-path="images/docs/64712e6-Screenshot_2023-06-02_at_1.53.48_PM.png" />
</Frame>

### Configuração da API

* **Aplicativos Móveis**: Use o parâmetro `buttons`. Passe um array de até 3 objetos com `id`, `text` e `icon`.
* **Web (Chrome)**: Use `web_buttons`, passando até 2 objetos com `id`, `text`, `icon` e `url`.

***

## Propriedades do botão de ação

* **ID da Ação**: Um identificador único para a ação específica do botão. O ID do botão clicado é passado para você para que possa identificar qual botão foi clicado. (ex: 'accept-button')

  * Deve ser único por botão.
  * Disponível no Payload OSNotification e pode ser acessado dentro do Manipulador de Eventos de Notificação Aberta do SDK.
  * API: propriedade `id`

* **Rótulo**: O texto que o botão deve exibir aos seus usuários. (ex: 'Aceitar')

  * API: propriedade `text`

* **Ícone**: Ícone opcional exibido com o rótulo do botão. Não disponível em todas as plataformas e sistemas operacionais. Consulte as Perguntas Frequentes abaixo para detalhes.

  * Aplicativos móveis devem incluir o botão dentro de seus recursos de imagem. Consulte Ícones de Botão de Ação abaixo para detalhes.
  * Sites podem usar uma URL publicamente acessível válida para um ícone. Mantenha-o pequeno porque é baixado em cada exibição de notificação. (ex: `http://site.com/icon.png`)
  * API: propriedade `icon`

* **URL do Botão**: A URL a ser aberta quando a notificação for clicada. Passe `'do_not_open'` para evitar abrir qualquer URL. (ex: 'do\_not\_open')

  * Apenas Web
  * API: propriedade `url`

### Ícones de botão de ação

* iOS suporta ícones de botão de ação para iOS 15+
* Android parou de suportar ícones de botão de ação para [Android N (também conhecido como 7)](https://android-developers.googleblog.com/2016/06/notifications-in-android-n.html)

***

## Lidar com cliques no botão de ação

Quando um usuário toca em um botão, o OneSignal entrega o ID da Ação ao seu aplicativo/site. Você pode usar o comportamento padrão (abrir seu aplicativo/site) ou substituí-lo.

### Comportamento padrão (Abrir App/Site, Depois Manipular)

1. O aplicativo/site abre (ou recebe foco na web).
2. Seu ouvinte de clique/abertura recebe o evento com o ID da Ação. (Consulte [referência do SDK móvel](./mobile-sdk-reference#addclicklistener-push) ou [referência do SDK web](./web-sdk-reference#addeventlistener-notifications) para detalhes do ouvinte de clique.)

### Evitar inicialização do aplicativo a partir de cliques no botão de ação

* **Android:** Siga [Configuração do SDK Android > Desabilitar comportamento de abertura padrão](./android-sdk-setup#disable-default-open-behavior). Isso permite interceptar cliques em uma [Extensão de Serviço](./service-extensions) e executar lógica personalizada (ex: chamar uma API) sem abrir o aplicativo.
* **iOS:** Inclua um `ios_category` na notificação para associar ações via [Objeto UNNotificationCategory](https://developer.apple.com/documentation/usernotifications/unnotificationcategory). Consulte [Declarando Seus Tipos de Notificação Acionáveis](https://developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types) da Apple para mais detalhes.
* **Web (Chrome):** Use a string mágica `_osp=do_not_open` para evitar abrir qualquer URL. Isso é suportado no Chrome e Firefox, mas não é suportado no navegador Safari.

***

## Plataformas suportadas e limites

| Plataforma                | Botões Suportados | Notas                                                                   |
| ------------------------- | ----------------- | ----------------------------------------------------------------------- |
| iOS                       | Até 4             | Ícones no iOS 15+. Requer categorias para manipulação em segundo plano. |
| Android / Amazon / Huawei | Até 3             | Sem ícones de botão a partir do Android 7+.                             |
| Web – Chrome              | Até 2             | Botões e ícones suportados. `_osp=do_not_open` suportado.               |
| Web – Firefox             | Sem botões        | `_osp=do_not_open` funciona apenas para a URL de inicialização.         |
| Web – Safari              | Sem botões        | `_osp=do_not_open` não suportado. Forneça uma URL real.                 |

<Note>Os usuários geralmente precisam **expandir** a notificação para ver os botões (ex: pressão longa no iOS, deslizar + **Visualizar** em alguns OEMs Android).</Note>

***

## Solução de problemas

### Os botões não aparecem

* Expanda a notificação (pressão longa, deslizar + Visualizar ou expandir).
* Verifique se você adicionou ID da Ação e Rótulo para cada botão.
* Verifique os limites da plataforma (ex: apenas 2 botões no Chrome).

### Clicar em um botão não abre o navegador na web móvel

Se o navegador estiver em segundo plano ou totalmente fechado, a maioria dos navegadores móveis (incluindo o Chrome) não virá para o primeiro plano ou abrirá a URL, mesmo que os eventos de clique ainda sejam acionados no service worker. Este é um comportamento intencional do navegador para evitar que aplicativos em segundo plano interrompam o usuário.

* A maioria dos navegadores móveis não se trazem para o primeiro plano a partir de um service worker em segundo plano. Os cliques ainda são disparados no worker, mas a aba não abre. Isso é intencional.
* Certifique-se de que a URL de inicialização e a URL do botão sejam exatamente idênticas (incluindo barras finais) se você espera que a aba receba foco em vez de abrir uma nova.

### Os ícones não aparecem

* iOS deve ser 15+ para ícones de botão.
* Android 7+ não renderiza ícones de botão de ação.
* Na web, confirme que a URL do ícone é publicamente acessível e pequena (rápida de baixar).

### Por que há um botão de ação de fechar?

Por padrão, as notificações push da web no Windows 10 incluem o botão Fechar. No entanto, se você adicionar seu próprio botão de ação, este botão de fechar é removido. Portanto, em qualquer caso, a notificação permanecerá na tela até que o usuário interaja com ela. Isso foi projetado pelo Google para dar aos usuários a chance de interagir com a notificação.

<Info>
  Precisa de ajuda?

  Converse com nossa equipe de Suporte ou envie email para `support@onesignal.com`

  Por favor inclua:

  * Detalhes do problema que você está enfrentando e passos para reproduzir se disponível
  * Seu OneSignal App ID
  * O External ID ou Subscription ID se aplicável
  * A URL para a mensagem que você testou no Dashboard OneSignal se aplicável
  * Quaisquer [logs ou mensagens de erro](/docs/pt-BR/capturing-a-debug-log) relevantes

  Estamos felizes em ajudar!
</Info>

***
