Класс YMPYandexMetricaPush

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

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

+handleApplicationDidFinishLaunchingWithOptions:

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

+handleDidReceiveNotificationRequest:

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

+handleRemoteNotification:

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

+isNotificationRelatedToSDK:

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

+setDeviceTokenFromData:

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

+setDeviceTokenFromData:pushEnvironment:

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

+setExtensionAppGroup:

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

+userDataForNotification:
Возвращает произвольную строку данных, которая передается в push-уведомлении:
  • В поле Дополнительные данные при отправке из интерфейса AppMetrica.
  • В поле data при отправке с помощью Push API.
+userNotificationCenterDelegate:

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

+userNotificationCenterHandler:

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

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

+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-уведомлений в виде пар «ключ-значение», которые передаются системой.

+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:(YMPYandexMetricaPushEnvironment)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

+ (id<YMPUserNotificationCenterDelegate>)userNotificationCenterDelegate

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

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

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

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

Возвращает:

Делегат, который реализует протокол YMPUserNotificationCenterDelegate.

+userNotificationCenterHandler

+ (id<YMPUserNotificationCenterHandling>)userNotificationCenterHandler

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

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

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

Возвращает:

Делегат, который реализует протокол YMPUserNotificationCenterHandling.