首页 > 解决方案 > 远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)

问题描述

动机:-我想存储在应用程序未处于后台模式或被终止模式时收到通知时存储的通知的有效负载。

问题:- 应用程序在终止模式下收到通知时没有委托呼叫。请建议在这种情况下该怎么做。

标签: iosxcodeswift3push-notificationremote-notifications

解决方案


来自 Apple 文档(UNUserNotificaitonCenter框架 iOS 10+)...

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

只有当应用程序在前台时,才会在委托上调用该方法。如果方法未实现或处理程序未及时调用,则不会显示通知。应用程序可以选择将通知呈现为声音、徽章、警报和/或在通知列表中。该决定应基于通知中的信息是否对用户可见。

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

    print("willPresent: \(notification.request.content.userInfo)")
    completionHandler([.alert, .badge, .sound])
}

当用户通过打开应用程序、关闭通知或选择 UNNotificationAction 来响应通知时,将在委托上调用该方法。必须在应用程序从 application:didFinishLaunchingWithOptions: 返回之前设置委托。


推荐阅读