如何通过ViewController中的通知操作检测应用程序是否已打开

时间:2017-08-19 22:29:02

标签: swift swift3

我正在开发一个通知应用程序,并想知道是否可以检测是否从ViewController.Swift中的通知操作而不是AppDelegate.swift打开了应用程序。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

Krish,每当应用程序启动时,AppDelegate被调用(如果未修改默认的Main类),并且在AppDelegate类中,您可以检查启动选项委托中的启动选项是否为通过远程通知打开。这是第一个捕获应用程序打开事件的操作。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    let remoteNotif = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? NSDictionary

    if remoteNotif != nil {
        let notifName = remoteNotif?["aps"] as! String
        print("Notification: \(notifName )")
    }
    else {
        print("Not remote")
    }
}

答案 1 :(得分:0)

Here is a complete and easy answer to that

在AppDelegate上处理事件后,您可以使用观察者来放置该事件的ViewController。 通常,您应该将用户重定向到特定视图,具体取决于通知有效负载。