# Pushwoosh Outsystems 插件客户端操作

该插件提供了一组客户端操作，以方便推送通知管理。这些操作允许您注册和注销设备、设置和获取标签、管理收件箱消息等。

## Pushwoosh 插件客户端操作

### CheckPushwooshPlugin

验证 Pushwoosh 插件当前是否可用。

#### 输出参数

| IsAvailable | 如果插件可用，则返回 true，否则返回 false |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

#### 用法示例

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

### RegisterDevice

为推送通知注册设备并检索推送令牌 (Push Token)。

#### 输入参数

| ApplicationCode | 文本，从您的账户设置中获取的 Pushwoosh application code。 |
| --------------- | ------------------------------------------------------------------------- |



#### 输出参数

| RegisterToken | 从 Google 或 Apple 收到的设备令牌 |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| Error         | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### UnregisterDevice

注销设备，使其不再接收推送通知。

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### GetDeviceID

检索设备 ID，它应该是一个唯一标识符。

#### 输出参数

| DeviceHwid | 设备的唯一标识符。 |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅在发生错误时设置。 |

### GetDeviceType

获取设备类型 (Android、iOS 或 Windows)。

#### 输出参数

| DeviceTypeId | 此设备类型的标识符。 |
| ------------ | ----------------------------------- |

### GetTags

从 Pushwoosh 获取标签 (tags) 数据。

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |
| Tags    | 返回包含分配给此设备的所有标签的 Key, Value Record List。 |

#### 用法示例

1. 调用 **GetTags** 操作从 Pushwoosh 获取标签数据。
2. 返回的标签可通过 **GetTags.Tags** 列表访问。

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

3. 使用 **LogMessage** 操作记录每个标签的键和值。

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

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

### PostEvent

当您的应用程序中发生特定事件时，向 Pushwoosh 发送一条消息。

#### 输入参数

| EventName       | 文本，事件的名称 |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| EventAttributes | Key, Value Record List，用于向 Pushwoosh 发送额外的事件数据（例如，对于 “UserLogin” 操作，您可能希望发送登录数据，如 - `{"username":"John"}`） |

输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

#### 用法示例

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

**1. 分配**

设置键值对以定义事件的数据。例如，将 KeyValue1.AttributeName 设置为 “test1”，将 KeyValue1.Value 设置为 “test1value”。同样，使用适当的属性名称和值定义 KeyValue2。

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

2. 创建要与事件关联的属性列表。

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

3. 最后，配置 **PostEvent** 操作。

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

### SetBadgeNumber

设置应用程序图标的角标数字。

#### 输入参数

| BadgeNumber | 整数，图标角标数字。 |
| ----------- | --------------------------- |

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### SetLanguage

设置自定义应用程序语言，而不是默认的系统语言。

#### 输入参数

| Language | 文本，使用双字母 ISO 格式的自定义应用程序语言（例如，“en”、“es”、“fr”） |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

向 Pushwoosh 发送标签及其值。

#### 输入参数

| Tags | TagName, TagValue Record List，包含您要发送的所有标签。TagName 类型应始终为文本，而 TagValue 可以是文本、整数、布尔值、日期等。 |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

#### 用法示例

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

1. 分配标签值。在下面的示例中，有两个标签：

* 名为 testTag 的 Tag1，其值设置为当前日期。
* 名为 testTag2 的 Tag2，其值设置为 True。

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

2. 然后，将标签附加到列表中。在此示例中：

* ListAppend3 将 Tag1 添加到 LocalTag 列表中。
* ListAppend4 将 Tag2 添加到 LocalTag 列表中。

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

3. 使用必要的标签填充列表后，使用 **SetTags** 客户端操作将此列表发送到 Pushwoosh。

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

### SetUserId

为此设备分配一个自定义 User ID。

#### 输入参数

| UserID | 文本，自定义 User ID。 |
| ------ | --------------------- |

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

## Pushwoosh 收件箱客户端操作

使用收件箱的流程如下：

1. 加载 InboxMessage 对象列表。
2. 使用这些对象渲染收件箱视图。
3. 执行下面列出的操作，或使用下面描述的操作删除这些对象。

| code              | 文本                   | 收件箱通知的唯一 ID。                                                                                                                                                                                                                                                                                               |
| ----------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title             | 文本                   | 通知标题。                                                                                                                                                                                                                                                                                                               |
| message           | 文本                   | 通知消息。                                                                                                                                                                                                                                                                                                             |
| imageUrl          | 文本                   | 附加到通知的自定义图片的 URL。                                                                                                                                                                                                                                                                                 |
| sendDate          | <p>日期</p><p>时间</p> | 表示发送通知的时间。                                                                                                                                                                                                                                                                                 |
| type              | 整数                | <p>通知类型。</p><p>可能的值：</p><ul><li>0 - 常规通知</li><li>1 - 富媒体通知</li><li>2 - URL 通知</li><li>3 - 深层链接通知</li></ul>                                                                                                                                |
| bannerUrl         | 文本                   | 包含 Android 横幅的 URL。                                                                                                                                                                                                                                                                                                |
| customData        | Key, Value Record List | 包含作为自定义数据传递的参数列表。                                                                                                                                                                                                                                                                              |
| isRead            | 布尔值                | 如果收件箱通知已读，则为 True。                                                                                                                                                                                                                                                                                               |
| isActionPerformed | 布尔值                | <ul><li>如果通知操作已执行，则为 <strong>True</strong>。</li><li>对于常规通知，如果通知已读，则为 <strong>true</strong>。</li><li>对于富媒体，如果富媒体已呈现，则为 <strong>true</strong>。</li><li>对于 URL 和深层链接，如果 URL/深层链接已打开，则为 <strong>true</strong>。</li></ul> |

### LoadMessages

从 Pushwoosh 获取收件箱通知。

#### 输出参数

| InboxMessages | InboxMessage List，所有收件箱消息的列表。                                                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | 如果一切正常，则返回 **true**；如果出现错误，则返回 **false**。                                                                                 |
| Error         | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### ReadMessage

将收件箱消息标记为已读。

#### 输入参数

| MessageCode | 文本，InboxMessage 的代码（在 LoadMessages 中作为 InboxMessage 的参数接收） |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 输出参数

| Success | 如果一切正常，则为 True；如果出现错误，则为 false。                                                                                                 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### PerformAction

对指定的收件箱消息执行操作（例如，在浏览器中打开 URL）。

#### 输入参数

| MessageCode | 文本，InboxMessage 的代码（在 LoadMessages 中作为 InboxMessage 的参数接收） |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### DeleteMessage

从收件箱中删除一条消息。

#### 输入参数

| MessageCode | 文本，InboxMessage 的代码（在 LoadMessages 中作为 InboxMessage 的参数接收） |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 输出参数

| Success | 如果一切正常，则返回 true；如果出现错误，则返回 false。 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### TotalMessagesCount

返回收件箱消息的总数。

#### 输出参数

| MessagesCount | 整数，收件箱消息的总数。                                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | 如果一切正常，则返回 true；如果出现错误，则返回 false。                                                                                         |
| Error         | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### UnreadMessagesCount

返回未读收件箱消息的数量。

#### 输出参数

| UnreadMessagesCount | 整数，未读收件箱消息的数量。                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success             | 如果一切正常，则返回 true；如果出现错误，则返回 false。                                                                                         |
| Error               | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |

### MessagesWithNoActionPerformedCount

返回未执行任何操作的收件箱消息的数量。

#### 输出参数

| MessagesWithNoActionPerformedCount | 整数，未执行任何操作的收件箱消息的数量。                                                                                                      |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success                            | 如果一切正常，则返回 true；如果出现错误，则返回 false。                                                                                         |
| Error                              | 一个包含错误代码和错误消息的错误，其中包含可能发生的任何错误的详细信息。仅当 Success 输出参数为 false 时设置。 |