ios - didReceiveLocalNotification 总是在应用程序启动时触发

标签 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?

感谢任何和所有建议。

最佳答案

你可以这样测试:

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

            }
        }    
    }

您可以关闭该应用程序但不要终止以对其进行测试。

关于ios - didReceiveLocalNotification 总是在应用程序启动时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361709/

相关文章:

ios - Autolayout 需要负常量才能与 superview 对齐?

ios - XCode: "<foo> (from ' 的私钥 <bar >')"未安装在此 Mac 上

ios - 你在哪里初始化 View Controller 中的属性值?

swift - 如何使工具栏附加到底部 iOS Swift

iOS App - 为每个新的一天更新字符串数组

ios - 由于 SFSafariViewController,YSLSearchViewController 无法在 iOS 9 上工作

ios - 检测未确认的 UILocalNotifications

iphone - UILocalNotification 每分钟重复一次

iphone - 如何将坐标从英寸转换为像素?

objective-c - 过去已经发生的事件的本地通知