# Outsystems

## Instalación del plugin de Pushwoosh

Comienza instalando el plugin de Pushwoosh desde [OutSystems Forge](https://www.outsystems.com/forge/component-overview/1556/pushwoosh-plugin). La forma más rápida de hacerlo es ir a la pestaña de OutSystems en tu entorno de desarrollo e instalarlo desde allí.

### Configuración de Pushwoosh

Necesitarás configurar Pushwoosh para cada una de las plataformas que vayas a soportar. Una vez que tu configuración esté lista, tendrás un Código de Aplicación (Application Code) de Pushwoosh que se usará con tu plugin.

#### Para iOS

Aprende a [configurar Pushwoosh para iOS](/es/developer/first-steps/connect-messaging-services/ios-configuration/ios-platform-configuration/).

#### Para Android

Aprende a [configurar Pushwoosh para Android](/es/developer/first-steps/connect-messaging-services/android-configuration/android-firebase-configuration/).

### Añadir el plugin de Pushwoosh a tu aplicación

1. En tu aplicación, usa "Manage Dependencies…" para añadir una referencia al plugin de Pushwoosh.

<img src="/outsystems.webp" alt=""/>

2. Añade el bloque "PushwooshNotifications" a:

   - El bloque "Layout" si tu aplicación no tiene inicio de sesión
   - El bloque "LayoutBlank" si tu aplicación tiene inicio de sesión

   Al añadir el bloque "PushwooshNotifications", evita añadirlo dentro de placeholders, porque algunos solo están disponibles en tiempo de diseño y, en tiempo de ejecución, Pushwoosh no funcionará.

3. Establece los siguientes parámetros en PushwooshNotifications:

   - **PushwooshApplicationCode:** El Código de Pushwoosh que obtuviste después de crear la aplicación en Pushwoosh.
   - **FCMSenderId:** El número de identificación que obtuviste al configurar Android. Puedes dejarlo vacío si tu aplicación solo está disponible para iOS.
   - **NotificationReceivedEvent (Opcional):** Un evento que se llama cuando se recibe una notificación mientras la aplicación está en primer plano.
   - **NotificationOpenedEvent (Opcional):** Un evento que se llama cuando un usuario hace clic en una notificación en su dispositivo.

Si estás usando el plugin de Pushwoosh en tu aplicación de Android, haz lo siguiente:

1. [Obtén el `google-services.json`](https://support.google.com/firebase/answer/7015592) de Firebase. El nombre del paquete de los servicios de Google debe coincidir con el identificador de la aplicación de OutSystems que se está construyendo.
2. Crea un archivo zip que contenga el `google-services.json` en la raíz.
3. Sube el archivo "google-services.zip" del paso anterior a tu aplicación de OutSystems y asegúrate de:
   - Establecer el "Name" como "google-services.zip"
   - Establecer "Deploy to Target Directory" como "google-services"

<img src="/outsystems2.webp" alt=""/>

Para que tu dispositivo reciba notificaciones push, necesitarás registrarlo. Si tus usuarios necesitan iniciar sesión para usar la aplicación, ve a la pantalla "Login" y edita la acción "Login".

<img src="/outsystems3.webp" alt=""/>


Añade el código para registrar el dispositivo después de la acción "DoLogin". Debería verse algo así:

<img src="/outsystems4.webp" alt=""/>

Si tu aplicación no tiene inicio de sesión, puedes añadir este código al evento `OnInitializeOver` en el bloque `PushwooshNotifications`.

<img src="/outsystems5.webp" alt=""/>

En este manejador de eventos, llama a la acción `RegisterDevice`.

<img src="/outsystems6.webp" alt=""/>

Si estás generando una aplicación móvil para iOS usando un certificado de desarrollador, necesitarás añadir una preferencia a la propiedad Extensibility Configurations de tu módulo de OutSystems:

```json
{
  "preferences": {
    "global": [
      {
        "name": "aps-environment",
        "value": "development"
      }
    ]
  }
}
```

<img src="/outsystems7.webp" alt=""/>

Esta preferencia se añadirá a tu archivo de entitlements (aprende más sobre entitlements en la [documentación para desarrolladores de Apple](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html)).

Si estás generando una aplicación móvil para iOS usando un certificado de producción, no necesitarás especificar ninguna preferencia, ya que el valor por defecto de la preferencia `aps-environment` en OutSystems es `production`.

Tu aplicación ya está lista para recibir notificaciones push. [Configura y genera tu aplicación móvil](https://success.outsystems.com/documentation/10/delivering_mobile_apps/generate_and_distribute_your_mobile_app/) e instálala en tu dispositivo. En este punto, puedes usar la interfaz de Pushwoosh para enviar notificaciones a tu aplicación y asegurarte de que todo está configurado correctamente. Ten en cuenta que no verás una notificación si la aplicación se está ejecutando. En su lugar, el evento `NotificationReceivedEvent` se dispara inmediatamente.

### Envío de notificaciones

Para enviar notificaciones, necesitas un [Token de Acceso a la API](/es/developer/api-reference/api-access-token/) de Pushwoosh. Crea uno accediendo a la consola de Pushwoosh, ve a "API Access" y haz clic en "Generate new access token".

<img src="/outsystems8.webp" alt=""/>

Para enviar una notificación a todos los dispositivos, usa la acción `SendPushNotificationToAll`.

<img src="/outsystems9.webp" alt=""/>

Esta acción toma los siguientes parámetros:

- **PushwooshApplicationCode:** El Código de Pushwoosh que obtuviste después de crear la aplicación en Pushwoosh.
- **ApiAccessToken:** El Token de Acceso a la API de Pushwoosh obtenido anteriormente.
- **Message:** El texto del mensaje que deseas enviar.
- **Badge:** Un número que se muestra en el icono de la aplicación de iOS.
- **Deeplink:** Un deep link para enviar con la notificación. Aprende [cómo definir deep links](https://success.outsystems.com/documentation/how_to_guides/development/how_to_define_mobile_app_deep_links/).

Por ejemplo, si usas esta acción para enviar el mensaje "Hello from OutSystems" a una aplicación llamada "PushTest", se mostraría lo siguiente en iOS:

<img src="/outsystems10.webp" alt=""/>

### Información adicional

- Si tu aplicación se está ejecutando, la notificación no se muestra en el dispositivo. En su lugar, se envía a la aplicación y se dispara el evento `NotificationReceivedEvent`. Necesitarás definir qué quieres que haga la aplicación en esa situación.
- Las notificaciones push pueden tardar un tiempo en activarse. Si no ves que llegan las notificaciones, espera unos minutos antes de seguir solucionando problemas.

## Comparte tus comentarios con nosotros

Tus comentarios nos ayudan a crear una mejor experiencia, por lo que nos encantaría saber de ti si tienes algún problema durante el proceso de integración del SDK. Si encuentras alguna dificultad, no dudes en compartir tus pensamientos con nosotros [a través de este formulario](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).