iOS Swift 2.3:应用程序恢复处理程序的正确语法?

Posted

技术标签:

【中文标题】iOS Swift 2.3:应用程序恢复处理程序的正确语法?【英文标题】:iOS Swift 2.3: correct syntax for application restorationHandler? 【发布时间】:2016-11-18 09:20:36 【问题描述】:

我正在尝试使用 Swift 2.3 在我的 ios 项目中设置 Firebase 动态链接

当我在 AppDelegate 中添加此函数时(如 page 底部所报告的那样),我收到错误:

未知属性“转义”

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

知道 Swift 2.3 的正确语法是什么吗?

【问题讨论】:

【参考方案1】:

你使用的方法是swift3,这里是swift2.3的方法

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


【讨论】:

【参考方案2】:

如果你想对深度链接添加限制,那么像这样实现波纹管方法 首先调用这个委托方法。

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


    return userActivityType == NSUserActivityTypeBrowsingWeb ? true : false


如果您想链接哪个用户有点击,或者如果您在单个应用中有多个深层链接然后想识别,那么您可以这样做。

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

【讨论】:

以上是关于iOS Swift 2.3:应用程序恢复处理程序的正确语法?的主要内容,如果未能解决你的问题,请参考以下文章

问题 XCode 8,Swift 2.3 存档版本在 IOS 9.2.1 -> IOS 9.0 上启动时崩溃

Swift 中的 iOS 8 和 9:首次启动期间 [警告:无法创建正在进行的恢复标记文件]

Firebase queryEqualToValue 在 Swift 2.3 中获取密钥

Socket.io 连接恢复为轮询,从不触发“连接”处理程序

应用程序关闭之前/应用程序打开之前的 Swift iOS 9+ [重复]

从 swift 3 转换为 swift 2.3 或从 iPhone 上的应用程序获取源代码