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

# Botones de acción para notificaciones push

> Agregue botones de acción interactivos a sus notificaciones push en iOS, Android y la web. Aprenda la configuración a través del Panel y API, plataformas compatibles, manejo de clics, iconos y seguimiento de eventos.

<Frame caption="Imagen que muestra botones de acción en 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>
  Esta guía se aplica solo a notificaciones push. Para mensajes en la aplicación, consulte [Mensajes en la aplicación: Cómo agregar acciones de clic](./iam-click-actions).
</Info>

Los botones de acción le permiten agregar múltiples acciones etiquetadas a una sola notificación push, para que los usuarios puedan responder sin abrir primero su aplicación o sitio. Dependiendo del sistema operativo y dispositivo, los usuarios revelan los botones al expandir la notificación (presión larga, deslizar + Ver, o una opción de expansión).

***

## Agregar botones de acción

Puede configurar botones de acción en [Plantillas](./templates), directamente al componer un mensaje en el panel, o a través de la [API](/reference/push-notification).

### Configuración del panel y plantillas

Al crear un push, abra **Opciones avanzadas > Botones de acción**.

<Frame caption="Imagen que muestra botones de acción a agregar para iOS y 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>

### Configuración de API

* **Aplicaciones móviles**: Use el parámetro `buttons`. Pase un array de hasta 3 objetos con `id`, `text` e `icon`.
* **Web (Chrome)**: Use `web_buttons`, pasando hasta 2 objetos con `id`, `text`, `icon` y `url`.

***

## Propiedades del botón de acción

* **Action ID**: Un identificador único para la acción específica del botón. El ID del botón clicado se le pasa para que pueda identificar qué botón fue clicado. (ej. 'accept-button')

  * Debe ser único por botón.
  * Disponible en el Payload de OSNotification y se puede acceder dentro del Manejador de eventos de notificación abierta del SDK.
  * API: propiedad `id`

* **Label**: El texto que el botón debe mostrar a sus usuarios. (ej. 'Accept')

  * API: propiedad `text`

* **Icon**: Icono opcional mostrado con la etiqueta del botón. No disponible en todas las plataformas y sistemas operativos. Consulte las preguntas frecuentes a continuación para obtener detalles.

  * Las aplicaciones móviles deben incluir el botón dentro de sus recursos de imagen. Consulte Iconos de botones de acción a continuación para obtener detalles.
  * Los sitios web pueden usar una URL válida y públicamente accesible a un icono. Manténgalo pequeño porque se descarga en cada visualización de notificación. (ej. `http://site.com/icon.png`)
  * API: propiedad `icon`

* **Button URL**: La URL a abrir cuando se hace clic en la notificación. Pase `'do_not_open'` para evitar abrir cualquier URL. (ej. 'do\_not\_open')

  * Solo web
  * API: propiedad `url`

### Iconos de botones de acción

* iOS soporta iconos de botones de acción para iOS 15+
* Android dejó de soportar iconos de botones de acción para [Android N (también conocido como 7)](https://android-developers.googleblog.com/2016/06/notifications-in-android-n.html)

***

## Manejar clics de botones de acción

Cuando un usuario toca un botón, OneSignal entrega el Action ID a su aplicación/sitio. Puede usar el comportamiento predeterminado (abrir su aplicación/sitio) o anularlo.

### Comportamiento predeterminado (Abrir App/Sitio, luego manejar)

1. La aplicación/sitio se abre (o se enfoca en la web).
2. Su listener de clic/apertura recibe el evento con el Action ID. (Consulte [referencia del SDK móvil](./mobile-sdk-reference#addclicklistener-push) o [referencia del SDK web](./web-sdk-reference#addeventlistener-notifications) para detalles del listener de clics.)

### Prevenir el lanzamiento de la aplicación desde clics de botones de acción

* **Android:** Siga [Configuración del SDK de Android > Deshabilitar comportamiento de apertura predeterminado](./android-sdk-setup#disable-default-open-behavior). Esto le permite interceptar clics en un [Service Extensions](./service-extensions) y ejecutar lógica personalizada (ej. llamar a una API) sin abrir la aplicación.
* **iOS:** Incluya un `ios_category` en la notificación para asociar acciones a través del [Objeto UNNotificationCategory](https://developer.apple.com/documentation/usernotifications/unnotificationcategory). Consulte [Declarar sus tipos de notificación accionables](https://developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types) de Apple para obtener más detalles.
* **Web (Chrome):** Use la cadena mágica `_osp=do_not_open` para evitar abrir cualquier URL. Esto es compatible con Chrome y Firefox, pero no compatible con el navegador web Safari.

***

## Plataformas compatibles y límites

| Plataforma                | Botones compatibles | Notas                                                                |
| ------------------------- | ------------------- | -------------------------------------------------------------------- |
| iOS                       | Hasta 4             | Iconos en iOS 15+. Requiere categorías para manejo en segundo plano. |
| Android / Amazon / Huawei | Hasta 3             | Sin iconos de botones desde Android 7+.                              |
| Web – Chrome              | Hasta 2             | Botones e iconos compatibles. `_osp=do_not_open` compatible.         |
| Web – Firefox             | Sin botones         | `_osp=do_not_open` funciona solo para la URL de lanzamiento.         |
| Web – Safari              | Sin botones         | `_osp=do_not_open` no compatible. Proporcione una URL real.          |

<Note>Los usuarios a menudo necesitan **expandir** la notificación para ver los botones (ej., presión larga en iOS, deslizar + **Ver** en algunos OEM de Android).</Note>

***

## Solución de problemas

### Los botones no aparecen

* Expanda la notificación (presión larga, deslizar + Ver, o expandir).
* Verifique que agregó Action ID y Label para cada botón.
* Verifique los límites de la plataforma (ej., solo 2 botones en Chrome).

### Hacer clic en un botón no abre el navegador en la web móvil

Si el navegador está en segundo plano o completamente cerrado, la mayoría de los navegadores móviles (incluido Chrome) no pasarán a primer plano ni abrirán la URL, aunque los eventos de clic aún se activen en el service worker. Este es el comportamiento intencional del navegador para evitar que las aplicaciones en segundo plano interrumpan al usuario.

* La mayoría de los navegadores móviles no se pondrán en primer plano desde un service worker en segundo plano. Los clics aún se disparan en el worker, pero la pestaña no se abre. Esto es intencional.
* Asegúrese de que la URL de lanzamiento y la URL del botón sean exactamente idénticas (incluidas las barras diagonales finales) si espera que la pestaña se enfoque en lugar de abrir una nueva.

### Los iconos no aparecen

* iOS debe ser 15+ para iconos de botones.
* Android 7+ no renderiza iconos de botones de acción.
* En la web, confirme que la URL del icono es públicamente accesible y pequeña (rápida de descargar).

### ¿Por qué hay un botón de acción de cerrar?

Por defecto, las notificaciones push web en Windows 10 incluyen el botón Cerrar. Sin embargo, si agrega su propio botón de acción, entonces este botón de cerrar se elimina. Entonces, en cualquier caso, la notificación permanecerá en la pantalla hasta que el usuario interactúe con ella. Esto está diseñado por Google para darles a los usuarios la oportunidad de interactuar con la notificación.

<Info>
  Need help?

  Chat with our Support team or email `support@onesignal.com`

  Please include:

  * Details of the issue you're experiencing and steps to reproduce if available
  * Your OneSignal App ID
  * The External ID or Subscription ID if applicable
  * The URL to the message you tested in the OneSignal Dashboard if applicable
  * Any relevant [logs or error messages](/docs/en/capturing-a-debug-log)

  We're happy to help!
</Info>

***
