# 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 obtiene un token push.

#### 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 (es decir, para la acción "UserLogin" es posible que desee 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 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 el valor del atributo apropiados.

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

2\. Cree listas de atributos para asociarlos 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 la aplicación personalizado en formato ISO de 2 letras (p. ej., "en", "es", "fr") |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

Envía etiquetas y sus valores a Pushwoosh.

#### Parámetros de entrada

| Tags | Lista de registros de TagName y 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 siguiente ejemplo, hay dos etiquetas:

* Tag1 con un nombre testTag y su valor establecido en la fecha actual.
* Tag2 con un 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. |

### SetApiToken

Establece el token de API de dispositivo de Pushwoosh utilizado por el SDK. Llámelo antes de `RegisterDevice`. El token también se puede establecer en el momento de la compilación con la preferencia `PW_API_TOKEN`; consulte la [guía de integración](/es/developer/pushwoosh-sdk/cross-platform-frameworks/outsystems/).

#### Parámetros de entrada

| Token | Texto, el token de API de dispositivo del Panel de control de Pushwoosh (sección Acceso a la API). |
| ----- | ---------------------------------------------------------------------------------- |

### EnableHuaweiPushNotifications

Cambia el transporte push a Huawei Push Kit (HMS). Llámelo antes de `RegisterDevice` en dispositivos Huawei. Requiere la configuración de Huawei; consulte [Huawei para Outsystems](/es/developer/pushwoosh-sdk/cross-platform-frameworks/outsystems/huawei-for-outsystems/).

La acción no tiene parámetros de salida y no informa de éxito o fracaso. Para verificar con qué transporte se registró realmente el dispositivo, use `GetDiagnostics`.

### SetMultiNotificationMode

*Disponible desde la versión 4.7.0 del componente del plugin de Pushwoosh.* **Solo para Android**: hace que cada notificación push aparezca como una notificación separada en lugar de reemplazar la anterior. Llámelo una vez después de la inicialización, por ejemplo, en el manejador del evento `OnInitializeOver`, después de `RegisterDevice`. La configuración es almacenada por el SDK y sobrevive a los reinicios de la aplicación. Android agrupa las notificaciones en una pila expandible, que es el comportamiento estándar del sistema. No hay implementación para iOS (iOS nunca reemplaza las notificaciones); proteja la llamada con `GetDeviceType` en lugar de ponerla en un flujo que también se ejecute en iOS.

### GetDiagnostics

*Disponible desde la versión 4.7.0 del componente del plugin de Pushwoosh.* Devuelve el estado de la integración como una cadena JSON: el código de aplicación efectivo e integrado y de dónde proviene, la presencia del token de API, el HWID, el token push, el estado del permiso de notificación y las versiones del plugin y del SDK nativo. En Android, además, incluye el ID de usuario y la lista de servicios registrados para eventos de mensajería FCM/HMS (estos dos campos no están presentes en iOS). Adjunte su salida a los tickets de soporte en lugar de recopilar registros del dispositivo.

#### Parámetros de salida

| DiagnosticsJSON | Texto, el estado de la integración como una cadena JSON.                                                                                                                     |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Error           | Un error que contiene el código de error y el mensaje de error con detalles sobre cualquier error que pueda haber ocurrido.                                                        |

Ejemplo de salida (Android):

```json
{
  "platform": "android",
  "packageName": "com.example.app",
  "appIdEffective": "XXXXX-XXXXX",
  "appIdManifest": "XXXXX-XXXXX",
  "appIdSource": "manifest",
  "apiTokenInManifest": false,
  "hwid": "d3ba13b6-…",
  "pushToken": "eAvqvOE0…",
  "userId": "d3ba13b6-…",
  "notificationsEnabled": true,
  "messagingServices": [
    { "action": "com.google.firebase.MESSAGING_EVENT", "class": "com.pushwoosh.firebase.PushFcmIntentService", "priority": 0 }
  ],
  "pluginVersion": "8.3.72-OS.1",
  "nativeSdkVersion": "6.11.1"
}
```

## 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 (p. ej., 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. |