Skip to content

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

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

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

Section titled “Добавление Notification Service Extension”
  1. В Xcode выберите File > New > Target…

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

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

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

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

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

Примечание: Если вы используете 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

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

Section titled “Добавление кода для отслеживания событий доставки сообщений”
  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>

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

Section titled “Поделитесь с нами своим мнением”

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