Access Notification Payload, если приложение запущено локальным уведомлением - PullRequest
0 голосов
/ 06 октября 2019

Как я могу получать уведомления и получать доступ к полезной нагрузке уведомлений, если пользователь нажимает на локальное уведомление, когда приложение находится в приостановленном состоянии, и запускает приложение? Когда приложение iOS открывается из фонового состояния, вызывается функция ответа UNNotification. Локальное уведомление, запускаемое ключом, устарело, и я не могу понять, как определить, было ли приложение запущено локальным уведомлением. Мне нужно использовать полезную нагрузку уведомлений для правильного заполнения контроллера представления.

Я использую эту функцию для получения ответа на уведомление, когда приложение находится в фоновом состоянии:

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

setup view here using payload
}

1 Ответ

1 голос
/ 06 октября 2019

Возможно, проблема в том, что вы не настраиваете UNUserNotificationCenterDelegate достаточно рано. Это нужно сделать очень рано, как в didFinishLaunching, чтобы среда выполнения знала, куда отправить didReceive. Вот как я это делаю:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]?) -> Bool {
    let center = UNUserNotificationCenter.current()
    center.delegate = self.notifHelper
    return true
}
...