Skip to content

Расширенное руководство по интеграции iOS SDK

В этом разделе содержится информация о расширенной интеграции Wavesend iOS SDK.

Чтобы включить эту функциональность, вы должны добавить фоновые режимы (Background Modes) в ваш проект.

Шаги для включения фоновых режимов

Section titled “Шаги для включения фоновых режимов”
  1. Откройте ваш проект в Xcode и выберите его в Project Navigator.
  2. Выберите вашу цель приложения (app target) на левой панели.
  3. Перейдите на вкладку Signing & Capabilities.
  4. Нажмите кнопку + Capability в левом верхнем углу.
  5. Найдите и выберите Background Modes из списка.
  6. В разделе Background Modes включите Remote notifications, установив флажок.

После завершения ваше приложение сможет обрабатывать push-уведомления, включая silent push notifications, во время работы в фоновом режиме.

По умолчанию Wavesend iOS SDK отображает баннер уведомления, когда приложение работает в активном режиме (на переднем плане).

Вы можете управлять этим поведением, установив следующий булев флаг в вашем коде (например, в вашем AppDelegate):

// Установите false, чтобы отключить уведомления в активном режиме, true — чтобы включить
Wavesend.sharedInstance().showPushnotificationAlert = true

Wavesend iOS SDK поддерживает следующие уровни логирования:

  • NONE - Нет логов от SDK.
  • ERROR - Отображает только сообщения об ошибках в консоли.
  • WARNING - Отображает предупреждения в дополнение к ошибкам.
  • INFO - Включает информационные сообщения (настройка по умолчанию).
  • DEBUG - Включает подробную отладочную информацию.

По умолчанию уровень логирования установлен на INFO, что гарантирует предоставление SDK релевантной информации без загромождения консоли разработчика.

Чтобы изменить уровень логирования, обновите ключ Wavesend_LOG_LEVEL в файле Info.plist вашего приложения:

<key>Wavesend_LOG_LEVEL</key>
<string>YOUR_LOG_LEVEL</string>

Кроме того, вы можете изменить уровень логирования с помощью приведенного ниже фрагмента кода:

Wavesend.Debug.setLogLevel(.PW_LL_DEBUG)

Замените YOUR_LOG_LEVEL на желаемый уровень (например, DEBUG или ERROR).

Пользовательский UNNotificationCenterDelegate

Section titled “Пользовательский UNNotificationCenterDelegate”

Если вы хотите использовать свой собственный UNNotificationCenterDelegate (например, для локальных уведомлений), вы должны сообщить об этом Wavesend SDK для корректной работы. Вы можете сделать это с помощью свойства notificationCenterDelegateProxy экземпляра Wavesend:

Wavesend.sharedInstance()?.notificationCenterDelegateProxy.add(my_delegate)

Затем реализуйте методы UNNotificationCenterDelegate в вашем делегате:

func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) {
// Обработайте ваше уведомление
completionHandler(UNNotificationPresentationOptions.alert)
}
}
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) {
// Обработайте ваше уведомление
completionHandler()
}
}

Отложенная инициализация Wavesend

Section titled “Отложенная инициализация Wavesend”

Флаг Wavesend_LAZY_INITIALIZATION предотвращает автоматическую инициализацию Wavesend SDK при запуске приложения. Это позволяет лучше контролировать, когда запускаются сервисы Wavesend SDK.

Когда этот флаг включен, Wavesend SDK не запускает свои сервисы до тех пор, пока не будут явно вызваны методы Wavesend iOS SDK.

Добавьте следующую запись в Info.plist:

<key>Wavesend_LAZY_INITIALIZATION</key>
<true/>

Сценарии использования

  1. Контролируемая инициализация SDK – Флаг Wavesend_LAZY_INITIALIZATION позволяет отложить запуск Wavesend SDK, предоставляя больше контроля над тем, когда активируются push-сервисы.

  2. Отложенная активация Push – В некоторых приложениях push-уведомления должны инициализироваться только при определенных условиях. Включение этого флага гарантирует, что Wavesend SDK запустится только по явному запросу.

  3. Пользовательская конфигурация Push – Некоторые приложения могут требовать настройки параметров push-уведомлений в зависимости от предпочтений пользователя или настроек учетной записи. При отложенной инициализации Wavesend SDK запускается только после определения соответствующей конфигурации.

Полный список свойств Info.plist

Section titled “Полный список свойств Info.plist”
СвойствоОписаниеВозможные значения
Wavesend_APPIDУстанавливает ID приложения Wavesend для производственной сборки.XXXXX-XXXXX
Тип: String
Wavesend_APPID_DevУстанавливает ID приложения Wavesend для отладочной сборки.XXXXX-XXXXX
Тип: String
Wavesend_SHOW_ALERTПоказывает уведомление в активном режиме.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALERT_TYPEУстанавливает стиль уведомления.BANNER (по умолчанию) / ALERT / NONE
Тип: String
Wavesend_BASEURLПереопределяет базовый URL сервера Wavesend.https://cp.wavesend.ru/json/1.3/ (по умолчанию)
Тип: String
Wavesend_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSHЕсли YES, Deep Link, полученные в silent push, будут обрабатываться автоматически.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALLOW_SERVER_COMMUNICATIONРазрешает SDK отправлять сетевые запросы на серверы Wavesend.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALLOW_COLLECTING_DEVICE_DATAРазрешает SDK собирать и отправлять данные устройства (версия ОС, локаль и модель) на сервер.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALLOW_COLLECTING_DEVICE_OS_VERSIONРазрешает SDK собирать и отправлять версию ОС устройства на сервер.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALLOW_COLLECTING_DEVICE_LOCALEРазрешает SDK собирать и отправлять локаль устройства на сервер.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_ALLOW_COLLECTING_DEVICE_MODELРазрешает SDK собирать и отправлять модель устройства на сервер.YES (по умолчанию) / NO
Тип: Boolean
Wavesend_LOG_LEVELУровень логирования Wavesend SDK. Подробнее см. в разделе Уровень логирования.NONE / ERROR / WARNING / INFO (по умолчанию) / DEBUG / VERBOSE
Тип: String
Wavesend_PURCHASE_TRACKING_ENABLEDРазрешает SDK отслеживать покупки в приложении. Требуется для Customer Journey Builder.YES / NO (по умолчанию)
Тип: Boolean