# Outsystems

## Установка плагина Pushwoosh

Начните с установки плагина Pushwoosh из [OutSystems Forge](https://www.outsystems.com/forge/component-overview/1556/pushwoosh-plugin). Самый быстрый способ сделать это — перейти на вкладку OutSystems в вашей среде разработки и установить его оттуда.

### Настройка Pushwoosh

Вам нужно будет настроить Pushwoosh для каждой платформы, которую вы будете поддерживать. После завершения настройки у вас будет Application Code от Pushwoosh, который будет использоваться с вашим плагином.

#### Для iOS

Узнайте, как [настроить Pushwoosh для iOS](/ru/developer/first-steps/connect-messaging-services/ios-configuration/ios-platform-configuration/).

#### Для Android

Узнайте, как [настроить Pushwoosh для Android](/ru/developer/first-steps/connect-messaging-services/android-configuration/android-firebase-configuration/).

### Добавление плагина Pushwoosh в ваше приложение

1. В вашем приложении используйте «Manage Dependencies…» (Управление зависимостями), чтобы добавить ссылку на плагин Pushwoosh.

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

2. Добавьте блок «PushwooshNotifications» в:

   - Блок «Layout», если в вашем приложении нет входа в систему
   - Блок «LayoutBlank», если в вашем приложении есть вход в систему

   При добавлении блока «PushwooshNotifications» избегайте его размещения внутри плейсхолдеров, так как некоторые из них доступны только во время разработки, и во время выполнения Pushwoosh не будет работать.

3. Установите следующие параметры в PushwooshNotifications:

   - **PushwooshApplicationCode:** Код Pushwoosh (Pushwoosh Code), который вы получили после создания приложения в Pushwoosh.
   - **FCMSenderId:** Идентификационный номер, который вы получили при настройке Android. Вы можете оставить это поле пустым, если ваше приложение доступно только для iOS.
   - **NotificationReceivedEvent (необязательно):** Событие, которое вызывается при получении уведомления, когда приложение находится в активном состоянии (на переднем плане).
   - **NotificationOpenedEvent (необязательно):** Событие, которое вызывается, когда пользователь нажимает на уведомление на своем устройстве.

Если вы используете плагин Pushwoosh в своем приложении для Android, выполните следующие действия:

1. [Получите `google-services.json`](https://support.google.com/firebase/answer/7015592) из Firebase. Имя пакета из сервисов Google должно совпадать с идентификатором приложения OutSystems, которое вы создаете.
2. Создайте zip-файл, содержащий `google-services.json` в корневом каталоге.
3. Загрузите файл «google-services.zip» из предыдущего шага в ваше приложение OutSystems и убедитесь, что:
   - Установлено «Name» (Имя) как «google-services.zip»
   - Установлено «Deploy to Target Directory» (Развернуть в целевой каталог) как «google-services»

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

Чтобы ваше устройство могло получать push-уведомления, вам необходимо его зарегистрировать. Если вашим пользователям необходимо войти в систему для использования приложения, перейдите на экран «Login» (Вход) и отредактируйте действие «Login».

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


Добавьте код для регистрации устройства после действия «DoLogin». Он должен выглядеть примерно так:

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

Если в вашем приложении нет входа в систему, вы можете добавить этот код в событие `OnInitializeOver` в блоке `PushwooshNotifications`.

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

В этом обработчике событий вызовите действие `RegisterDevice`.

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

Если вы создаете мобильное приложение для iOS с использованием сертификата разработчика, вам потребуется добавить настройку в свойство Extensibility Configurations вашего модуля OutSystems:

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

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

Эта настройка будет добавлена в ваш файл entitlements (узнайте больше о entitlements в [документации для разработчиков Apple](https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html)).

Если вы создаете мобильное приложение для iOS с использованием производственного сертификата, вам не нужно будет указывать какие-либо настройки, поскольку значение по умолчанию для `aps-environment` в OutSystems — `production`.

Теперь ваше приложение готово к получению push-уведомлений. [Настройте и сгенерируйте свое мобильное приложение](https://success.outsystems.com/documentation/10/delivering_mobile_apps/generate_and_distribute_your_mobile_app/) и установите его на свое устройство. На этом этапе вы можете использовать интерфейс Pushwoosh для отправки уведомлений в ваше приложение и убедиться, что все настроено правильно. Обратите внимание, что вы не увидите уведомление, если приложение запущено. Вместо этого немедленно вызывается событие `NotificationReceivedEvent`.

### Отправка уведомлений

Для отправки уведомлений вам понадобится [API Access Token](/ru/developer/api-reference/api-access-token/) от Pushwoosh. Создайте его, зайдя в консоль Pushwoosh, перейдите в «API Access» и нажмите «Generate new access token» (Сгенерировать новый токен доступа).

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

Чтобы отправить уведомление на все устройства, используйте действие `SendPushNotificationToAll`.

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

Это действие принимает следующие параметры:

- **PushwooshApplicationCode:** Код Pushwoosh (Pushwoosh Code), который вы получили после создания приложения в Pushwoosh.
- **ApiAccessToken:** API Access Token от Pushwoosh, полученный ранее.
- **Message:** Текст сообщения, которое вы хотите отправить.
- **Badge:** Число, которое отображается на иконке приложения iOS.
- **Deeplink:** Глубокая ссылка (deep link), отправляемая с уведомлением. Узнайте, [как определять глубокие ссылки](https://success.outsystems.com/documentation/how_to_guides/development/how_to_define_mobile_app_deep_links/).

Например, если вы используете это действие для отправки сообщения «Hello from OutSystems» в приложение под названием «PushTest», в iOS будет показано следующее:

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

### Дополнительная информация

- Если ваше приложение запущено, уведомление не отображается на устройстве. Вместо этого оно отправляется в приложение, и вызывается событие `NotificationReceivedEvent`. Вам нужно будет определить, что приложение должно делать в этой ситуации.
- Push-уведомлениям может потребоваться некоторое время для активации. Если вы не видите, что уведомления приходят, подождите несколько минут, прежде чем приступать к дальнейшему устранению неполадок.

## Поделитесь с нами своим мнением

Ваши отзывы помогают нам улучшать наш продукт, поэтому мы будем рады, если вы поделитесь с нами своим мнением при возникновении любых проблем в процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, не стесняйтесь поделиться своими мыслями с нами [через эту форму](https://docs.google.com/forms/d/e/1FAIpQLSd_0b8jwn-V_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform).