Класс AMPAppMetricaPush

Основной класс для обработки Push-уведомлений.

Методы экземпляра

+downloadAttachmentsForNotificationRequest:

Загружает прикрепленные файлы в push-уведомлениях. Метод доступен для iOS 10.0 и выше.

+handleApplicationDidFinishLaunchingWithOptions:

Обрабатывает открытие push-уведомления из метода application:didFinishLaunchingWithOptions:.

+handleDidReceiveNotificationRequest:

Обрабатывает получение push-уведомления из расширения Notification Service Extension.

+handleRemoteNotification:

Обрабатывает открытие push-уведомления из метода application:didReceiveRemoteNotification:fetchCompletionHandler:.

+handleSceneWillConnectToSession:

Обрабатывает открытие push-уведомления из метода scene:willConnectToSession:options:.

+isNotificationRelatedToSDK:

Возвращает YES, если push-уведомление относится к AppMetrica.

+setDeviceTokenFromData:

Регистрирует device token приложения с production-окружением.

+setDeviceTokenFromData:pushEnvironment:

Регистрирует device token приложения с указанным окружением.

+setExtensionAppGroup:

Регистрирует общую группу App Groups приложения и Notification Service Extension.

+userDataForNotification:

Возвращает произвольную строку данных, которая передается в push-уведомлении.

Свойства

userNotificationCenterDelegate

Возвращает делегат AMPUserNotificationCenterDelegate, который обрабатывает foreground push-уведомления на iOS 10 и выше.

userNotificationCenterHandler

Возвращает делегат AMPUserNotificationCenterHandling, который позволяет вручную обрабатывать foreground push-уведомления на iOS 10 и выше.

Описание методов

+downloadAttachmentsForNotificationRequest:

+ (void)downloadAttachmentsForNotificationRequest:(UNNotificationRequest *)request
                                         callback:(AMPAttachmentsDownloadCallback)callback);

Загружает прикрепленные файлы в push-уведомлениях. Метод доступен для iOS 10.0 и выше.

Параметры:

request

Объект класса UNNotificationRequest.

callback

Callback-блок загрузки прикрепленных файлов. Формат:

typedef void (^AMPAttachmentsDownloadCallback) (NSArray<UNNotificationAttachment *> * _Nullable attachments, NSError * _Nullable error)

Включает в себя массив вложений attachments и ошибку error, если во время загрузки произошла ошибка.

+handleApplicationDidFinishLaunchingWithOptions:

+ (void)handleApplicationDidFinishLaunchingWithOptions:(nullable NSDictionary *)launchOptions

Обрабатывает открытие push-уведомления из метода application:didFinishLaunchingWithOptions:. Метод должен быть вызван после инициализации AppMetrica SDK.

Параметры:

launchOptions

Параметры в виде пар «ключ-значение», которые содержат информацию о запуске приложения.

+handleDidReceiveNotificationRequest:

+ (void)handleDidReceiveNotificationRequest:(UNNotificationRequest *)request

Обрабатывает получение push-уведомления из расширения Notification Service Extension.

Метод должен быть вызван в реализации метода didReceiveNotificationRequest:withContentHandler:.

Параметры:

request

Объект класса UNNotificationRequest.

+handleRemoteNotification:

+ (void)handleRemoteNotification:(NSDictionary *)userInfo

Обрабатывает открытие push-уведомления из метода application:didReceiveRemoteNotification:fetchCompletionHandler:. Метод должен быть вызван после инициализации AppMetrica SDK.

Параметры:

userInfo

Параметры push-уведомлений в виде пар «ключ-значение», которые передаются системой.

+handleSceneWillConnectToSession:

+ (void)handleSceneWillConnectToSessionWithOptions:(UISceneConnectionOptions *)connectionOptions

Обрабатывает открытие push-уведомления из метода scene:willConnectToSession:options:. Метод должен быть вызван после инициализации AppMetrica SDK.

Параметры:

connectionOptions

Объект класса UISceneConnectionOptions с параметрами подключения, которые передаются системой.

+isNotificationRelatedToSDK:

+ (BOOL)isNotificationRelatedToSDK:(NSDictionary *)userInfo;

Возвращает YES, если push-уведомление относится к AppMetrica.

Параметры:

userInfo

Параметры push-уведомлений в виде пар «ключ-значение», которые передаются системой.

Возвращает:

  • YES — если push-уведомление относится к AppMetrica.
  • NO — если push-уведомление не относится к AppMetrica.

+setDeviceTokenFromData:

+ (void)setDeviceTokenFromData:(nullable NSData *)data

Регистрирует device token приложения с production-окружением. Метод должен быть вызван после инициализации AppMetrica SDK.

Параметры:

data

Device token приложения.

Если передается значение nil, предыдущий device token отзывается.

+setDeviceTokenFromData:pushEnvironment:

+ (void)setDeviceTokenFromData:(nullable NSData *)data
               pushEnvironment:(AMPAppMetricaPushEnvironment)pushEnvironment

Регистрирует device token приложения с указанным окружением. Метод должен быть вызван после инициализации AppMetrica SDK.

Внимание

AppMetrica позволяет отправлять push-уведомления в Sandbox APNs. Но обработка push-уведомлений может работать некорректно, если на устройстве запускались версии приложения с разным окружением (development и production). Чтобы избежать этого, можно использовать отдельный тестовый API key для development окружения.

Параметры:

data

Device token приложения.

Если передается значение nil, предыдущий device token отзывается.

pushEnvironment

APNs окружение приложения.

+setExtensionAppGroup:

+ (void)setExtensionAppGroup:(NSString *)appGroup

Регистрирует общую группу App Groups приложения и Notification Service Extension.

Регистрация необходима для отслеживания доставки push-уведомлений. Подробнее в разделе Настройка сбора статистики push-уведомлений.

Параметры:

appGroup

Название общей группы App Groups.

+userDataForNotification:

+ (nullable NSString *)userDataForNotification:(NSDictionary *)userInfo

Возвращает произвольную строку данных, которая передается в push-уведомлении:

  • В поле Дополнительные данные при отправке из интерфейса AppMetrica.
  • В поле data при отправке с помощью Push API.

Параметры:

userInfo

Параметры push-уведомлений в виде пар «ключ-значение», которые передаются системой.

Возвращает:

Произвольная строка данных.

Описание свойств

+userNotificationCenterDelegate

@property (readonly, class) id<AMPUserNotificationCenterDelegate> userNotificationCenterDelegate;

Возвращает делегат AMPUserNotificationCenterDelegate, который обрабатывает foreground push-уведомления на iOS 10 и выше.

Для обработки foreground push-уведомлений, добавьте этот код в методе application:didFinishLaunchingWithOptions::

[UNUserNotificationCenter currentNotificationCenter].delegate = [AMPAppMetricaPush userNotificationCenterDelegate];

Для ручной обработки push-уведомлений используйте userNotificationCenterHandler.

+userNotificationCenterHandler

@property (readonly, class) id<AMPUserNotificationCenterHandling> userNotificationCenterHandler;

Возвращает делегат AMPUserNotificationCenterHandling, который позволяет вручную обрабатывать foreground push-уведомления на iOS 10 и выше.

Используйте этот делегат, если вы реализуете протокол UNUserNotificationCenterDelegate с собственной логикой. При этом необходимо реализовать каждый метод из делегата UNUserNotificationCenterDelegate и вызывать соответствующие методы в AMPUserNotificationCenterHandling.

Для упрощенной обработки push-уведомлений используйте userNotificationCenterDelegate.