UNUserNotificationCenterDelegate didReceive не запускается в iOS с приложением Flutter - PullRequest
0 голосов
/ 26 июня 2019

У меня есть настроенные push-уведомления с использованием APNS для iOS (с использованием Swift) в приложении флаттера.didReceiveRemoteNotification запускается, когда приложение получает push-уведомление от AWS Pinpoint.Но ни один из других методов не запускается, когда пользователь нажимает на уведомление.После того, как я обработал действие пользователя в push-уведомлении, я могу вызвать схему с помощью openUrl для конкретного маршрута в приложении.

Я пытался отключить / включить фоновые режимы в функциях в Xcode.Также проверено, что push-уведомления включены в возможности.Pinpoint использует APNS для отправки уведомления на iOS и Firebase для отправки уведомления на Android, который работает нормально.

Также пробовал с целевой версией iOS как 10.0, 11.0 и 12.0

UNUserNotificationCenter.current (). Делегат = self объявляется в didFinishLaunchingWithOptions и импортируется UserNotifications

Когда я касаюсьpush-уведомление, это печатается в консоли:

Предупреждение: делегат UNUserNotificationCenter получил вызов -userNotificationCenter: didReceiveNotificationResponse: withCompletionHandler: но обработчик завершения никогда не вызывался.

Полезная нагрузка с точки:

[AnyHashable("aps"): {
    alert =     {
        body = "BODY";
        title = "TITLE";
    };
    badge = 0;
    "content-available" = 1;
    "mutable-content" = 0;
    sound = default;
}]

Код,

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

            let userInfo = notification.request.content.userInfo

            // Print full message.
            print(userInfo)

            // Change this to your preferred presentation option
            completionHandler([])
        }

        func userNotificationCenter(_ center: UNUserNotificationCenter,
                                    didReceive response: UNNotificationResponse,
                                    withCompletionHandler completionHandler: @escaping () -> Void) {
            let userInfo = response.notification.request.content.userInfo

            // Print full message.
            print(userInfo)

            completionHandler()
        }

    }

didReceive ожидается срабатывание, когда пользователь нажимает на push-уведомление, которого нет в моем случае.

Может кто-нибудь помочьо том, как вызвать, когда пользователь нажимает push-уведомление?

...