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