# Acciones de cliente del plugin de Pushwoosh para Outsystems

El plugin proporciona un conjunto de acciones de cliente para facilitar la gestión de notificaciones push. Estas acciones le permiten registrar y anular el registro de dispositivos, establecer y obtener etiquetas, gestionar mensajes de la bandeja de entrada y más.

## Acciones de cliente del plugin de Pushwoosh

### CheckPushwooshPlugin

Valida si el plugin de Pushwoosh está disponible actualmente.

#### Parámetros de salida

| IsAvailable | Devuelve verdadero si el plugin está disponible para su uso, de lo contrario, falso                                                                                                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

#### Ejemplo de uso

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-1.webp" alt="Acción CheckPushwooshPlugin"/>

### RegisterDevice

Registra un dispositivo para notificaciones push y recupera un Push Token.

#### Parámetros de entrada

| ApplicationCode | Texto, el código de la aplicación Pushwoosh obtenido de la configuración de su cuenta. |
| --------------- | ------------------------------------------------------------------------- |



#### Parámetros de salida

| RegisterToken | Token recibido de Google o Apple para el dispositivo                                                                                                               |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| Error         | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### UnregisterDevice

Anula el registro de un dispositivo para que no reciba notificaciones push.

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### GetDeviceID

Recupera el ID del dispositivo, que debe ser un identificador único.

#### Parámetros de salida

| DeviceHwid | El identificador único del dispositivo.                                                                                                          |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando hubo un error. |

### GetDeviceType

Obtiene el tipo de dispositivo (Android, iOS o Windows).

#### Parámetros de salida

| DeviceTypeId | El identificador de este tipo de dispositivo. |
| ------------ | ----------------------------------- |

### GetTags

Obtiene los datos de las etiquetas de Pushwoosh.

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |
| Tags    | Devuelve una lista de registros de clave y valor que contiene todas las etiquetas asignadas a este dispositivo.                                                                                      |

#### Ejemplo de uso

1. Invoque la acción **GetTags** para obtener los datos de las etiquetas de Pushwoosh.
2. Las etiquetas devueltas son accesibles a través de la lista **GetTags.Tags**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-2.webp" alt=""/>

3. Use la acción **LogMessage** para registrar la clave y el valor de cada etiqueta.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-3.webp" alt=""/>

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-4.webp" alt=""/>

### PostEvent

Envía un mensaje a Pushwoosh cuando ocurre un evento particular en su aplicación.

#### Parámetros de entrada

| EventName       | Texto, nombre del evento                                                                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| EventAttributes | Lista de registros de clave y valor, utilizada para enviar datos de eventos adicionales a Pushwoosh (por ejemplo, para la acción "UserLogin" podría querer enviar datos de inicio de sesión, como - `{"username":"John"}`) |

Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

#### Ejemplo de uso

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-5.webp" alt=""/>

**1. Asignar**

Configure pares de clave-valor para definir los datos del evento. Por ejemplo, KeyValue1.AttributeName como "test1" y KeyValue1.Value como "test1value". De manera similar, defina KeyValue2 con el nombre y valor de atributo apropiados.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-6.webp" alt=""/>

2\. Cree listas de atributos para asociar con el evento.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-7.webp" alt=""/>

3. Finalmente, configure la acción **PostEvent**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-8.webp" alt=""/>

### SetBadgeNumber

Establece el número de la insignia del icono de la aplicación.

#### Parámetros de entrada

| BadgeNumber | Entero, número de la insignia del icono. |
| ----------- | --------------------------- |

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### SetLanguage

Establece un idioma de aplicación personalizado en lugar del idioma predeterminado del sistema.

#### Parámetros de entrada

| Language | Texto, idioma de aplicación personalizado en formato ISO de 2 letras (por ejemplo, "en", "es", "fr") |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

Envía etiquetas y sus valores a Pushwoosh.

#### Parámetros de entrada

| Tags | Lista de registros TagName, TagValue que contiene todas las etiquetas que desea enviar. El tipo de TagName siempre debe ser Texto, mientras que TagValue puede ser Texto, Entero, Booleano, Fecha, etc. |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

#### Ejemplo de uso

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-9.webp" alt=""/>

1. Asigne valores de etiqueta. En el ejemplo siguiente, hay dos etiquetas:

* Tag1 con el nombre testTag y su valor establecido en la fecha actual.
* Tag2 con el nombre testTag2 y su valor establecido en Verdadero.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-10.webp" alt=""/>

2\. Luego, agregue las etiquetas a una lista. En este ejemplo:

* ListAppend3 agrega Tag1 a la lista LocalTag.
* ListAppend4 agrega Tag2 a la lista LocalTag.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-11.webp" alt=""/>

3\. Después de poblar la lista con las etiquetas necesarias, use la acción de cliente **SetTags** para enviar esta lista a Pushwoosh.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-12.webp" alt=""/>

### SetUserId

Asigna un ID de Usuario personalizado a este dispositivo.

#### Parámetros de entrada

| UserID | Texto, ID de Usuario personalizado. |
| ------ | --------------------- |

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

## Acciones de cliente de la bandeja de entrada de Pushwoosh

El proceso para trabajar con la bandeja de entrada es el siguiente:

1. Cargue una lista de objetos InboxMessage.
2. Use estos objetos para renderizar la vista de la bandeja de entrada.
3. Realice las acciones que se enumeran a continuación o elimine estos objetos utilizando las acciones que se describen a continuación.

| code              | Texto                   | ID único de una notificación de la bandeja de entrada.                                                                                                                                                                                                                                                                                               |
| ----------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title             | Texto                   | Título de la notificación.                                                                                                                                                                                                                                                                                                               |
| message           | Texto                   | Mensaje de la notificación.                                                                                                                                                                                                                                                                                                             |
| imageUrl          | Texto                   | URL de una imagen personalizada adjunta a una notificación.                                                                                                                                                                                                                                                                                 |
| sendDate          | <p>Fecha</p><p>Hora</p> | Representa la hora en que se envió una notificación.                                                                                                                                                                                                                                                                                 |
| type              | Entero                | <p>Tipo de notificación.</p><p> Valores posibles:</p><ul><li>0 - notificación regular</li><li>1 - notificación de rich media</li><li>2 - notificación de URL</li><li>3 - notificación de deep link</li></ul>                                                                                                                                |
| bannerUrl         | Texto                   | Contiene la URL de un banner de Android.                                                                                                                                                                                                                                                                                                |
| customData        | Lista de registros de clave y valor | Contiene una lista de parámetros pasados como datos personalizados.                                                                                                                                                                                                                                                                              |
| isRead            | Booleano                | Verdadero si la notificación de la bandeja de entrada está leída.                                                                                                                                                                                                                                                                                               |
| isActionPerformed | Booleano                | <ul><li><strong>Verdadero</strong> si se realiza la acción de la notificación. </li><li>Para notificaciones regulares, <strong>verdadero</strong> si se lee una notificación. </li><li>Para Rich Media, <strong>verdadero</strong> si se presentó el rich media. </li><li>Para URL y deep links, <strong>verdadero</strong> si se abrió la URL/deep link.</li></ul> |

### LoadMessages

Obtiene las notificaciones de la bandeja de entrada de Pushwoosh.

#### Parámetros de salida

| InboxMessages | Lista de InboxMessage, lista de todos los mensajes de la bandeja de entrada.                                                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Devuelve **verdadero** si todo va como se espera, **falso** si hay un error.                                                                                 |
| Error         | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### ReadMessage

Marca el mensaje de la bandeja de entrada como leído.

#### Parámetros de entrada

| MessageCode | Texto, código de un InboxMessage (recibido como parámetro de un InboxMessage en LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Parámetros de salida

| Success | Verdadero si todo va como se espera, falso si hay un error.                                                                                                 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### PerformAction

Realiza una acción para los mensajes de la bandeja de entrada especificados (por ejemplo, abrir una URL en un navegador).

#### Parámetros de entrada

| MessageCode | Texto, código de un InboxMessage (recibido como parámetro de un InboxMessage en LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### DeleteMessage

Elimina un mensaje de la bandeja de entrada.

#### Parámetros de entrada

| MessageCode | Texto, código de un InboxMessage (recibido como parámetro de un InboxMessage en LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Parámetros de salida

| Success | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### TotalMessagesCount

Devuelve el número total de mensajes de la bandeja de entrada.

#### Parámetros de salida

| MessagesCount | Entero, número total de mensajes de la bandeja de entrada.                                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| Error         | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### UnreadMessagesCount

Devuelve el número de mensajes no leídos de la bandeja de entrada.

#### Parámetros de salida

| UnreadMessagesCount | Entero, número de mensajes no leídos de la bandeja de entrada.                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success             | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| Error               | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |

### MessagesWithNoActionPerformedCount

Devuelve el número de mensajes de la bandeja de entrada sin ninguna acción realizada.

#### Parámetros de salida

| MessagesWithNoActionPerformedCount | Entero, número de mensajes de la bandeja de entrada sin ninguna acción realizada.                                                                                                      |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success                            | Devuelve verdadero si todo va como se espera, falso si hay un error.                                                                                         |
| Error                              | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido. Solo se establece cuando el parámetro de salida Success es falso. |