Как получить уведомление только при получении push-уведомления, прежде чем нажать - PullRequest
0 голосов
/ 02 июля 2018

Мне нужно запустить два разных эксперимента, когда приложение находится в фоновом режиме,

  1. Когда пользователь получает уведомление, но еще не нажимает. (это не достигнуто)
  2. Из всех уведомлений, сколько раз пользователь нажимает на уведомления оповещения и открыть приложение. (это достигнуто)

Я использовал следующие методы: Когда пользователь отвечает на уведомление нажатием на предупреждающее сообщение, система вызывает указанный ниже метод с результатами.

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)

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

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)

1 Ответ

0 голосов
/ 02 июля 2018

Для этого вы можете использовать application:didReceiveRemoteNotification:fetchCompletionHandler: метод. Когда приходит push-уведомление, система отображает уведомление для пользователя и запускает приложение в фоновом режиме (при необходимости), чтобы оно могло вызвать этот метод. От Документы Apple :

Реализуйте этот метод, если ваше приложение поддерживает удаленное уведомление фоновый режим. ... Когда приходит push-уведомление, система отображает уведомление для пользователя и запускает приложение в фон (при необходимости), чтобы он мог вызвать этот метод. Использовать этот способ загрузки любых данных, связанных с push-уведомлением. когда ваш метод завершен, вызовите блок в параметре обработчика.

В отличие от приложения: didReceiveRemoteNotification: метод, который является вызывается только когда ваше приложение запущено, система вызывает этот метод независимо от состояния вашего приложения.

Об использовании выше метод:

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

...