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

# Notificaciones

> Muestre recordatorios a los usuarios a través de Elata mientras su aplicación esté abierta.

<a id="why-your-app-cant-notify-directly" />

## Por qué tu aplicación no puede notificar directamente

Su aplicación se ejecuta en un iframe de origen cruzado en espacio aislado. Los navegadores bloquean la API `Notification` allí: el permiso está bloqueado en `denied` y `requestPermission()` nunca aparece.

Hay dos opciones compatibles:

| Opción | Funciona cuando | Lo mejor para |
| - | - | - |
| **Recordatorios gestionados por Elata** (esta página) | La pestaña Elata está abierta | "Sesión completa", "hora de tu descanso" |
| **Empuje de fondo** | Un trabajador de servicio, una suscripción push y un servicio de entrega implementados por separado | Notificaciones de antecedentes; la instalación por sí sola no proporciona esto |

***

<a id="request-a-reminder" />

## Solicitar un recordatorio

```js theme={null}
window.parent?.postMessage(
  {
    type: 'elata:notify:request',
    requestId: 'optional-id',
    body: 'Focus block complete. Nice work!',
  },
  '*',
);
```

* `body` es texto sin formato. Elata elimina los caracteres de control, los contrae en una línea y los corta a **140 caracteres**.
* No puede configurar el título, el icono, la URL de clic ni las acciones. Elata los establece.

Elata responde con `{ type: 'elata:notify:state', requestId?, status }`:

| estado | Significado | IU sugerida |
| - | - | - |
| `shown` | Se mostró una notificación. | Mostrar recordatorios como en |
| `undecided` | El usuario aún no se ha registrado; Elata muestra el mensaje "¿Permitir recordatorios?" rápido | Un Estado neutral y pendiente |
| `blocked` | El usuario optó por no participar o el sistema operativo le negó el permiso. | Deja de preguntar; explicar la configuración de notificaciones |
| `rate_limited` | Más de 3 solicitudes en un minuto | retroceder |
| `unsupported` | Este navegador no tiene API de notificación | Ocultar la configuración |

***

<a id="what-elata-guarantees" />

## Lo que garantiza Elata

* **Título de la autoría de Elata.** Siempre `Elata · <your app name>`, tomado de su lista de Elata, para que las aplicaciones no puedan hacerse pasar por el sistema operativo, Elata ni entre sí.
* **Suscripción por aplicación.** Desactivado de forma predeterminada. La primera solicitud muestra un mensaje dentro del marco y la elección se recuerda por aplicación.
* **Límite de tarifa.** Como máximo 3 recordatorios por aplicación por minuto.
* **Solo primer plano.** Los recordatorios aparecen solo mientras la pestaña Elata está abierta. Al hacer clic en uno, se enfoca Elata.

***

<a id="detecting-elata" />

## Detectando Elata

Utilice el puente solo cuando se ejecute dentro de Elata y mantenga su ruta directa para uso independiente mientras se ejecuta la página. La instalación en la pantalla de inicio por sí sola no permite que este código se ejecute cuando la aplicación está cerrada:

```js theme={null}
const inStore = window.parent !== window;
if (inStore) {
  window.parent.postMessage({ type: 'elata:notify:request', body }, '*');
} else if (Notification.permission === 'granted') {
  new Notification('My App', { body });
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.