iOS Swift 2.3: correct syntax for application rest

2019-09-11 14:34发布

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?

2条回答
别忘想泡老子
2楼-- · 2019-09-11 15:07

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 {

}
查看更多
▲ chillily
3楼-- · 2019-09-11 15:11

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
}
查看更多
登录 后发表回答