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

Отслеживание доставки сообщений в iOS

В Pushwoosh существует API-метод, который отслеживает доставку push-уведомлений. Приложения для iOS не поддерживают этот метод “из коробки”, поскольку push-уведомления в iOS обрабатываются операционной системой, а не Pushwoosh SDK. Однако вы можете реализовать отслеживание доставки, добавив в свой проект Pushwoosh Notification Service Extension для отслеживания доставки push-уведомлений. Здесь вы найдете шаги по внедрению отслеживания доставки сообщений для iOS-приложений.

Добавление Notification Service Extension

Anchor link to
  1. В Xcode выберите File > New > Target…

  2. Выберите Notification Service Extension и нажмите Next.

  1. Введите название продукта и нажмите Finish.
  1. Нажмите Cancel в появившемся окне Activate scheme.

Отменяя это действие, вы оставляете Xcode в режиме отладки вашего приложения, а не только что созданного расширения. Если вы случайно активировали его, вы можете переключиться обратно на отладку вашего приложения в Xcode.

Зависимости для Notification Service Extension (только для CocoaPods)

Anchor link to

Примечание: Если вы используете Swift Package Manager для управления зависимостями, вы можете пропустить этот шаг, так как зависимости добавляются автоматически.

Откройте ваш Podfile и добавьте зависимость для target:

Podfile
target 'NotificationServiceExtension' do
use_frameworks!
pod 'PushwooshXCFramework'
end

Выполните следующие команды в терминале, чтобы установить зависимости:

Terminal window
rm -rf Podfile.lock
pod deintegrate
pod setup
pod repo update
pod install

Добавление кода для отслеживания событий доставки сообщений

Anchor link to
  1. Добавьте следующий код в ваш файл NotificationService.m:
import UserNotifications
import PushwooshFramework
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
PWNotificationExtensionManager.shared().handle(request, contentHandler: contentHandler)
}
}
  1. Добавьте Pushwoosh_APPID в info.plist вашего Notification Service Extension.
<key>Pushwoosh_APPID</key>
<string>XXXXX-XXXXX</string>

Поделитесь с нами своим мнением

Anchor link to

Ваши отзывы помогают нам улучшать наши продукты, поэтому мы будем рады, если вы поделитесь своим мнением о процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, сообщите нам об этом через эту форму.