Перейти к содержанию

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

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

Фоновые режимы

Anchor link to

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

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

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

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

Режимы переднего плана

Anchor link to

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

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

// Установите false, чтобы отключить уведомления на переднем плане, true - чтобы включить
Pushwoosh.configure.showPushnotificationAlert = true

Уровень логирования

Anchor link to

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

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

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

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

<key>Pushwoosh_LOG_LEVEL</key>
<string>YOUR_LOG_LEVEL</string>

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

Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)

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

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

Anchor link to

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

Pushwoosh.configure.addNotificationCenterDelegate(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()
}
}

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

Anchor link to

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

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

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

<key>Pushwoosh_LAZY_INITIALIZATION</key>
<true/>

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

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

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

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

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

Anchor link to
СвойствоОписаниеВозможные значения
Pushwoosh_APPIDУстанавливает ID приложения Pushwoosh для производственной сборки.XXXXX-XXXXX
Тип: String
Pushwoosh_APPID_DevУстанавливает ID приложения Pushwoosh для сборки для разработки.XXXXX-XXXXX
Тип: String
Pushwoosh_SHOW_ALERTПоказывает уведомление в активном режиме (foreground).YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALERT_TYPEУстанавливает стиль уведомления.BANNER (по умолчанию) / ALERT / NONE
Тип: String
Pushwoosh_BASEURLПереопределяет базовый URL сервера Pushwoosh.https://cp.pushwoosh.com/json/1.3/ (по умолчанию)
Тип: String
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSHЕсли YES, Deep Links, полученные в тихих push-уведомлениях, будут обрабатываться автоматически.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_SERVER_COMMUNICATIONРазрешает SDK отправлять сетевые запросы на серверы Pushwoosh.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATAРазрешает SDK собирать и отправлять на сервер данные об устройстве (версия ОС, локаль и модель).YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSIONРазрешает SDK собирать и отправлять на сервер версию ОС устройства.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALEРазрешает SDK собирать и отправлять на сервер локаль устройства.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODELРазрешает SDK собирать и отправлять на сервер модель устройства.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_ALLOW_COLLECTING_SCREEN_NAMEРазрешает SDK прикреплять имя текущего экрана к событиям PW_ScreenOpen, PW_UserIdle и PW_ApplicationExit.YES (по умолчанию) / NO
Тип: Boolean
Pushwoosh_LOG_LEVELУровень логирования Pushwoosh SDK. Подробнее см. в разделе Уровень логирования.NONE / ERROR / WARNING / INFO (по умолчанию) / DEBUG / VERBOSE
Тип: String
Pushwoosh_PURCHASE_TRACKING_ENABLEDРазрешает SDK отслеживать встроенные покупки. Необходимо для Customer Journey Builder.YES / NO (по умолчанию)
Тип: Boolean

На платформах, где нельзя редактировать Info.plist (Cordova, OutSystems), используйте вместо этого эквивалент времени выполнения: Pushwoosh.configure.setAllowCollectingScreenName:.