简体   繁体   中英

iOS Swift 2.3: correct syntax for application restorationHandler?

I am trying to setup Firebase Dynamic Links in my iOS project using Swift 2.3.

When I add this function in the AppDelegate (as reported at the bottom of this page ), I get the error:

Unknown attribute 'escaping'

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    guard let dynamicLinks = FIRDynamicLinks.dynamicLinks() else {
       return false
    }
    let handled = dynamicLinks.handleUniversalLink(userActivity.webpageURL!) {
       (dynamiclink, error) in
       // ...
    }
    return handled
}

any idea which is the correct syntax for Swift 2.3?

The method which you are using is for swift3 , here is the method for swift2.3

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {

}

if you want to add restriction on deep link then implement bellow method like this this delegate method call first.

func application(application: UIApplication, willContinueUserActivityWithType userActivityType: String) -> Bool {


    return userActivityType == NSUserActivityTypeBrowsingWeb ? true : false

}

if you want to link which user have click or if you have multiple deep link in single app then want to identify then you can get like this.

func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool{
    // pass the url to the handle deep link call
    print(userActivity.webpageURL)
    //NSURLComponents
    return true
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM