Ios didReceiveLocalNotification始终在应用程序启动时触发
我正在尝试设置我的应用程序,以便在从本地通知打开时打开特定页面。我已经设置了ReceiveLocalNotification来打印通知信息。这已经运行了几天,但我今天才注意到,当我从xcode启动我的应用程序时,会调用didReceiveLocalNotification,并打印上一次计划通知(几个小时前)中的信息 这是我的密码:Ios didReceiveLocalNotification始终在应用程序启动时触发,ios,swift,uilocalnotification,Ios,Swift,Uilocalnotification,我正在尝试设置我的应用程序,以便在从本地通知打开时打开特定页面。我已经设置了ReceiveLocalNotification来打印通知信息。这已经运行了几天,但我今天才注意到,当我从xcode启动我的应用程序时,会调用didReceiveLocalNotification,并打印上一次计划通知(几个小时前)中的信息 这是我的密码: func application(application: UIApplication, didReceiveLocalNotification notificati
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
// If app is opened from a local notification while running in background, print notification info.
if(application.applicationState == .Active){
print(notification)
print("app opened from notification")
}
}
我见过一些线程,其中人们对同一个本地通知调用了两次ReceiveLocalNotification,但这是不同的。每次我登录应用程序时,它都会被调用,打印四小时前发出的通知的信息。如何确保仅在从通知打开应用程序时调用didReceiveLocalNotification
非常感谢您的任何建议。您可以这样测试:
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
print("notification - tapped")
if application.applicationState == UIApplicationState.Active {
print("App already open")
} else {
print("App opened from Notification")
}
}
}
您可以关闭应用程序,但不要终止以对其进行测试。当我使用此代码时,每次运行应用程序时,即使没有通知,它也会打印“通知-点击”。是的,因为每次设置通知时,它都会告诉我。如果您愿意,可以删除该行。但如果你从通知中打开应用程序,它应该告诉你“从通知中打开应用程序”。我想我现在明白了。我正在使用.Active,而我本应该使用.Inactive。非常感谢。