Класс YMPYandexMetricaPush

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

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

+downloadAttachmentsForNotificationRequest:

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

+handleApplicationDidFinishLaunchingWithOptions:

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

+handleDidReceiveNotificationRequest:

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

+handleRemoteNotification:

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

+handleSceneWillConnectToSession:

Обрабатывает открытие push-уведомления из метода scene(_:willConnectTo:options:). Метод должен быть вызван после инициализации 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 и выше.

+downloadAttachmentsForNotificationRequest:

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

+handleApplicationDidFinishLaunchingWithOptions:

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

+handleDidReceiveNotificationRequest:

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

+handleRemoteNotification:

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

+handleSceneWillConnectToSession:

Обрабатывает открытие push-уведомления из метода scene(_:willConnectTo:options:). Метод должен быть вызван после инициализации 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 и выше.

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

downloadAttachmentsForNotificationRequest:

class func downloadAttachments(request: UNNotificationRequest, callback: YMPAttachmentsDownloadCallback)

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

Параметры:
request

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

callback

Callback-блок загрузки содержимого уведомлений. Формат: public typealias YMPAttachmentsDownloadCallback = ([UNNotificationAttachment]?, Error?) -> Void. Включает в себя массив вложений attachments и ошибку error, если во время загрузки произошла ошибка.

request

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

callback

Callback-блок загрузки содержимого уведомлений. Формат: public typealias YMPAttachmentsDownloadCallback = ([UNNotificationAttachment]?, Error?) -> Void. Включает в себя массив вложений attachments и ошибку error, если во время загрузки произошла ошибка.

handleApplicationDidFinishLaunching(withOptions:)

class func handleApplicationDidFinishLaunching(withOptions launchOptions: [AnyHashable : Any]?)

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

Параметры:
launchOptions

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

launchOptions

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

handleDidReceive(_:)

class func handleDidReceive(_ request: UNNotificationRequest?)

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

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

Параметры:
request

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

request

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

handleRemoteNotification(_:)

class func handleRemoteNotification(_ userInfo: [AnyHashable : Any]?)

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

Параметры:
userInfo

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

userInfo

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

handleSceneWillConnectToSession(with: connectionOptions)

class func handleSceneWillConnectToSession(with: connectionOptions)

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

Параметры:
connectionOptions

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

connectionOptions

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

isNotificationRelated(toSDK:)

class func isNotificationRelated(toSDK userInfo: [AnyHashable : Any]?) -> Bool

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

Параметры:
userInfo

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

userInfo

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

Возвращает:

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

setDeviceTokenFrom(_:)

class func setDeviceTokenFrom(_ data: Data?)

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

Параметры:
data

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

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

data

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

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

setDeviceTokenFrom(_:pushEnvironment:)

class func setDeviceTokenFrom(_ data: Data?, pushEnvironment: YMPYandexMetricaPushEnvironment)

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

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

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

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

pushEnvironment

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

data

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

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

pushEnvironment

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

setExtensionAppGroup(_:)

class func setExtensionAppGroup(_ appGroup: String?)

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

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

Параметры:
appGroup

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

appGroup

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

userData(forNotification:)

class func userData(forNotification userInfo: [AnyHashable : Any]?) -> String?
Возвращает произвольную строку данных, которая передается в push-уведомлении:
  • В поле Дополнительные данные при отправке из интерфейса AppMetrica.
  • В поле data при отправке с помощью Push API.
Параметры:
userInfo

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

userInfo

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

Возвращает:

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

userNotificationCenterDelegate()

class func userNotificationCenterDelegate() -> YMPUserNotificationCenterDelegate?

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

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

let delegate = YMPYandexMetricaPush.userNotificationCenterDelegate()
UNUserNotificationCenter.current().delegate = delegate

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

Возвращает:

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

userNotificationCenterHandler()

class func userNotificationCenterHandler() -> YMPUserNotificationCenterHandling?

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

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

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

Возвращает:

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