简体   繁体   中英

Dynamic Links Firebase only work the first time

I am adding the Firebase Dynamic Links in my iOS App. I made the configuration according to the documentation and until this point, all right. When testing, I noticed that the link opens the app and calls the method:

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

And works!

But when I click the link (dynamic link) again, it just opens the app and does not call the method.

Can someone help me?

My code:

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
    }
}
  1. Make sure didFinishLaunchingWithOptions returns true.
  2. Looks like you have a slightly older version of continueUserActivity -- maybe try the more modern signature:
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, 
      restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool

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