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.