Расширенное руководство по интеграции 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):
// Set false to disable foreground notifications, true to enable itPushwoosh.sharedInstance().showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[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)) { // Handle your notification completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // Handle your notification completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Handle your message completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Handle your message 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 | Устанавливает ID приложения Pushwoosh для production-сборки. | XXXXX-XXXXX Тип: String |
Pushwoosh_APPID_Dev | Устанавливает ID приложения Pushwoosh для development-сборки. | XXXXX-XXXXX Тип: String |
Pushwoosh_SHOW_ALERT | Показывает alert-уведомление на переднем плане. | YES (по умолчанию) / NO Тип: Boolean |
Pushwoosh_ALERT_TYPE | Устанавливает стиль alert-уведомления. | 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 |