首页 > 解决方案 > 动态链接 Firebase 仅在第一次工作

问题描述

我在我的 iOS 应用中添加 Firebase 动态链接。我根据文档进行了配置,直到这一点,好吧。在测试时,我注意到链接打开了应用程序并调用了该方法:

application (_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any]

并且有效!

但是当我再次点击链接(动态链接)时,它只是打开了应用程序,并没有调用该方法。

有人能帮我吗?

我的代码:

private func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
        let handled = DynamicLinks.dynamicLinks().handleUniversalLink(userActivity.webpageURL!) { (dynamiclink, error) in
//            let vc = NomeStoryboard.instance.configuracoes.instantiateViewController(withIdentifier: "idSB_ConfiguracoesApp_Onboard") as! ConfiguracoesAppPageViewController
//            UIApplication.shared.keyWindow?.rootViewController = vc
        }

        return handled
    }

    @available(iOS 9.0, *)
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any]) -> Bool {
        return application(app, open: url,
                           sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
                           annotation: "")
    }

    func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
        if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
            // Handle the deep link. For example, show the deep-linked content or
            // apply a promotional offer to the user's account.
            // ...
            return true
        }
        return false
    }
}

标签: swiftfirebasedynamichyperlinkfirebase-dynamic-links

解决方案


  1. 确保didFinishLaunchingWithOptions返回 true。
  2. 看起来你有一个稍微旧的版本continueUserActivity——也许试试更现代的签名:
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, 
      restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool

推荐阅读