Расширенное руководство по интеграции iOS SDK
В этом разделе содержится информация о расширенной интеграции Pushwoosh iOS SDK.
Фоновые режимы
Anchor link toЧтобы включить эту функциональность, вы должны добавить фоновые режимы (Background Modes) в свой проект.
Шаги по включению фоновых режимов
Anchor link to- Откройте свой проект в Xcode и выберите его в Project Navigator.
- Выберите таргет вашего приложения на левой панели.
- Перейдите на вкладку Signing & Capabilities.
- Нажмите кнопку + Capability в левом верхнем углу.
- Найдите и выберите Background Modes в списке.
- В разделе Background Modes включите Remote notifications, установив соответствующий флажок.
После этого ваше приложение сможет обрабатывать push-уведомления, включая тихие, во время работы в фоновом режиме.
Режимы переднего плана
Anchor link toПо умолчанию Pushwoosh iOS SDK отображает баннер уведомления, когда приложение работает в активном режиме (на переднем плане).
Вы можете управлять этим поведением, установив следующий логический флаг в вашем коде (например, в вашем AppDelegate
):
// Установите false, чтобы отключить уведомления на переднем плане, true — чтобы включитьPushwoosh.sharedInstance().showPushnotificationAlert = true
// Установите 0, чтобы отключить уведомления на переднем плане, 1 — чтобы включить[[Pushwoosh sharedInstance] setShowPushnotificationAlert:0];
Уровень логирования
Anchor link toPushwoosh 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 для обеспечения корректного поведения. Вы можете сделать это с помощью свойства notificationCenterDelegateProxy
экземпляра Pushwoosh:
Pushwoosh.sharedInstance()?.notificationCenterDelegateProxy.add(my_delegate)
[Pushwoosh.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(); }}
Отложенная инициализация Pushwoosh
Anchor link toФлаг Pushwoosh_LAZY_INITIALIZATION
предотвращает автоматическую инициализацию Pushwoosh SDK при запуске приложения. Это позволяет лучше контролировать, когда запускаются сервисы Pushwoosh SDK.
Когда этот флаг включен, Pushwoosh SDK не запускает свои сервисы до тех пор, пока не будут явно вызваны методы Pushwoosh iOS SDK.
Добавьте следующую запись в Info.plist:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>
Варианты использования
Контролируемая инициализация SDK – Флаг Pushwoosh_LAZY_INITIALIZATION позволяет отложить запуск Pushwoosh SDK, предоставляя больше контроля над тем, когда активируются push-сервисы.
Отложенная активация push-уведомлений – В некоторых приложениях push-уведомления должны инициализироваться только при определенных условиях. Включение этого флага гарантирует, что Pushwoosh SDK запустится только тогда, когда это будет явно запрошено.
Конфигурация push-уведомлений для конкретного пользователя – Некоторым приложениям может потребоваться настройка параметров push-уведомлений в зависимости от предпочтений пользователя или настроек учетной записи. При отложенной инициализации Pushwoosh SDK запускается только после определения соответствующей конфигурации.
Полный список свойств Info.plist
Anchor link toСвойство | Описание | Возможные значения |
---|---|---|
Pushwoosh_APPID | Устанавливает идентификатор приложения Pushwoosh для производственной сборки. | XXXXX-XXXXX Тип: String |
Pushwoosh_APPID_Dev | Устанавливает идентификатор приложения Pushwoosh для сборки для разработки. | XXXXX-XXXXX Тип: String |
Pushwoosh_SHOW_ALERT | Показывает уведомление на переднем плане. | 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_LOG_LEVEL | Уровень логирования Pushwoosh SDK. Подробнее см. в разделе Управление уровнем логирования. | NONE / ERROR / WARNING / INFO (по умолчанию) / DEBUG / VERBOSE Тип: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | Позволяет SDK отслеживать встроенные покупки. Необходимо для Customer Journey Builder. | YES / NO (по умолчанию)Тип: Boolean |