4

我正在 iOS 10 中编写提醒应用程序;我的本地通知是使用 UserNotifications 框架发送的。发送通知已经很好了;我的问题是通知的后台处理。早些时候,您可以didReceiveRemoteNotification在应用程序委托中使用来处理 userInfo 等内容;现在,UserNotification 显然有它自己的方法。

通常,我想检测是否在我不在的情况下收到了通知。案例:我收到了,我点击打开应用程序图标,bam:警报控制器显示:您已收到通知。我正在使用这两个功能:

func userNotificationCenter(_ center: UNUserNotificationCenter,  willPresent notification: UNNotification, withCompletionHandler   completionHandler: @escaping (_ options:   UNNotificationPresentationOptions) -> Void) {
    print("Handle push from foreground")

    UserDefaults.standard.set(true, forKey: "didReceiveRemoteNotification")
    UserDefaults.standard.synchronize()

    print("\(notification.request.content.userInfo)")
}

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
    print("Handle push from background or closed")

    UserDefaults.standard.set(true, forKey: "didReceiveRemoteNotification")

    print("\(response.notification.request.content.userInfo)")
}

但它们只有在我通过点击通知中心的通知访问应用程序时才有效。那么,在不是通过通知进入应用,而是通过应用本身进入应用的场景下,如何检测是否收到了通知呢?

4

0 回答 0