IOS-SWIFT - удаленное уведомление для отображения баннера в приложении - PullRequest
0 голосов
/ 26 июня 2018

Недавно я работал над приложением обмена сообщениями с использованием APN. При получении удаленного уведомления вызывается приложение функции делегата (_: didReceiveRemoteNotification: fetchCompletionHandler), и я отправляю некоторое уведомление в NotificationCenter, затем наблюдатель может добавить новое сообщение в мой локальный массив сообщений.

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
    NotificationCenter.default.post(name: Notification.Name(rawValue: "com.rjt.Chao.messaging"), object: nil, userInfo: userInfo)
}

Это работает нормально, но когда я хочу добавить в приложение баннер с уведомлением, написав следующее:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    completionHandler([.badge, .alert, .sound])
} 

Теперь я могу получить баннер в приложении, но приложение (_: didReceiveRemoteNotification: fetchCompletionHandler) не вызывается и не может отправить уведомление в NotificationCenter.

Почему это так? Как лучше всего реализовать приложение для обмена мгновенными сообщениями с помощью баннера уведомлений в приложении?

...