Расширенное руководство по интеграции iOS SDK
В этом разделе содержится информация о расширенной интеграции Wavesend iOS SDK.
Фоновые режимы
Section titled “Фоновые режимы”Чтобы включить эту функциональность, вы должны добавить фоновые режимы (Background Modes) в ваш проект.
Шаги для включения фоновых режимов
Section titled “Шаги для включения фоновых режимов”- Откройте ваш проект в Xcode и выберите его в Project Navigator.
- Выберите вашу цель приложения (app target) на левой панели.
- Перейдите на вкладку Signing & Capabilities.
- Нажмите кнопку + Capability в левом верхнем углу.
- Найдите и выберите Background Modes из списка.
- В разделе Background Modes включите Remote notifications, установив флажок.
После завершения ваше приложение сможет обрабатывать push-уведомления, включая silent push notifications, во время работы в фоновом режиме.
Активные режимы
Section titled “Активные режимы”По умолчанию Wavesend iOS SDK отображает баннер уведомления, когда приложение работает в активном режиме (на переднем плане).
Вы можете управлять этим поведением, установив следующий булев флаг в вашем коде (например, в вашем AppDelegate):
// Установите false, чтобы отключить уведомления в активном режиме, true — чтобы включитьWavesend.sharedInstance().showPushnotificationAlert = true// Установите 0, чтобы отключить уведомления в активном режиме, 1 — чтобы включить[[Wavesend sharedInstance] setShowPushnotificationAlert:0];Уровень логирования
Section titled “Уровень логирования”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)[Wavesend.sharedInstance.notificationCenterDelegateProxy 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() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]){ // Обработайте ваше сообщение completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { 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/>Сценарии использования
-
Контролируемая инициализация SDK – Флаг
Wavesend_LAZY_INITIALIZATIONпозволяет отложить запуск Wavesend SDK, предоставляя больше контроля над тем, когда активируются push-сервисы. -
Отложенная активация Push – В некоторых приложениях push-уведомления должны инициализироваться только при определенных условиях. Включение этого флага гарантирует, что Wavesend SDK запустится только по явному запросу.
-
Пользовательская конфигурация 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 |