How to handle launch options in Swift 3 when a notification is tapped? Getting syntax problems

firebase, firebase-cloud-messaging, firebase-notifications, ios, swift

Solution

So it turned out the whole method signature has changed and when I implemented the new signature things worked just fine. Below is the code.

new didFinishLaunchingWithOptions method:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {



//and then 
 if launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] != nil {


// Do what you want to happen when a remote notification is tapped.


}

}

Hope this helps.

Problem

I am trying to handle the launch option and open a specific view controller upon tapping a remote notification that I receive in swift 3. I have seen similar question, for instance here, but nothing for the new swift 3 implementation. I saw a similar question (and ) In AppDelegate.swift I have the following in didFinishLaunchingWithOptions: ``` var localNotif = (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as! String) if localNotif { var itemName = (localNotif.userInfo!["aps"] as! String) print("Custom: \(itemName)") } else { print("//////////////////////////") } ``` but Xcode is giving me this error: ``` Type '[NSObject: AnyObject]?' has no subscript members ``` I also tried this: ``` if let launchOptions = launchOptions { var notificationPayload: NSDictionary = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as NSDictionary! } ``` and I get this error: ``` error: ambiguous reference to member 'subscript' ``` I got similar errors wherever I had previously used similar code to get a value from a dictionary by the key and I had to replace the codes and basically safely unwrap the dictionary first. But that doesn't seem to work here. Any help would be appreciated. Thanks.

Original source

Related problems