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

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

Отменяя это действие, вы оставляете Xcode в режиме отладки вашего приложения, а не только что созданного расширения. Если вы случайно активировали его, вы можете переключиться обратно на отладку вашего приложения в Xcode.
Зависимости для Notification Service Extension (только для CocoaPods)
Anchor link toПримечание: Если вы используете Swift Package Manager для управления зависимостями, вы можете пропустить этот шаг, так как зависимости добавляются автоматически.
Откройте ваш Podfile
и добавьте зависимость для target:
target 'NotificationServiceExtension' do use_frameworks! pod 'PushwooshXCFramework'end
Выполните следующие команды в терминале, чтобы установить зависимости:
rm -rf Podfile.lockpod deintegratepod setuppod repo updatepod install
Добавление кода для отслеживания событий доставки сообщений
Anchor link to- Добавьте следующий код в ваш файл NotificationService.m:
import UserNotificationsimport 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) }}
#import "PWNotificationExtensionManager.h"
@interface NotificationService : UNNotificationServiceExtension
@end
@implementation NotificationService
- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler { [[PWNotificationExtensionManager sharedManager] handleNotificationRequest:request contentHandler:contentHandler];}
- (void)serviceExtensionTimeWillExpire { // Вызывается непосредственно перед тем, как расширение будет завершено системой. // Используйте это как возможность доставить вашу "наилучшую попытку" измененного контента, иначе будет использована исходная полезная нагрузка push-уведомления.}
@end
- Добавьте Pushwoosh_APPID в info.plist вашего Notification Service Extension.
<key>Pushwoosh_APPID</key> <string>XXXXX-XXXXX</string>
Поделитесь с нами своим мнением
Anchor link toВаши отзывы помогают нам улучшать наши продукты, поэтому мы будем рады, если вы поделитесь своим мнением о процессе интеграции SDK. Если вы столкнетесь с какими-либо трудностями, пожалуйста, сообщите нам об этом через эту форму.