didReceiveLocalNotification始终在应用启动时触发

时间:2016-07-13 21:06:33

标签: ios swift uilocalnotification

我正在尝试设置我的应用,以便在从本地通知打开时打开特定页面。我已设置didReceiveLocalNotification来打印通知信息。这已经工作了几天,但我今天才注意到,当我从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")
    }
}

我已经看到一些线程,人们在同一个本地通知中调用了两次didReceiveLocalNotification,但这是不同的。我每次登录应用程序时都会调用它,打印有关四小时前发出的通知的信息。如何确保仅在通知打开应用程序时调用didReceiveLocalNotification?

赞赏任何和所有建议。

1 个答案:

答案 0 :(得分:3)

你可以这样测试:

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")

            }
        }    
    }

您可以关闭应用,但不要终止测试。