Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios didReceiveLocalNotification始终在应用程序启动时触发_Ios_Swift_Uilocalnotification - Fatal编程技术网

Ios didReceiveLocalNotification始终在应用程序启动时触发

Ios didReceiveLocalNotification始终在应用程序启动时触发,ios,swift,uilocalnotification,Ios,Swift,Uilocalnotification,我正在尝试设置我的应用程序,以便在从本地通知打开时打开特定页面。我已经设置了ReceiveLocalNotification来打印通知信息。这已经运行了几天,但我今天才注意到,当我从xcode启动我的应用程序时,会调用didReceiveLocalNotification,并打印上一次计划通知(几个小时前)中的信息 这是我的密码: func application(application: UIApplication, didReceiveLocalNotification notificati

我正在尝试设置我的应用程序,以便在从本地通知打开时打开特定页面。我已经设置了ReceiveLocalNotification来打印通知信息。这已经运行了几天,但我今天才注意到,当我从xcode启动我的应用程序时,会调用didReceiveLocalNotification,并打印上一次计划通知(几个小时前)中的信息

这是我的密码:

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。非常感谢。