我正在iOS 10中编写提醒应用程序;我的本地通知使用UserNotifications框架发送。发送通知工作正常;我的问题是通知的后台处理。
早些时候,您可以在app委托中使用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)")
}
但是,如果我通过点击通知中心中的通知来访问该应用,它们只会起作用。那么,如何检测我是否在通过通知进入应用程序的场景中收到通知,但是通过应用程序本身?