Динамические ссылки Firebase работают только в первый раз - PullRequest
0 голосов
/ 22 февраля 2019

Я добавляю динамические ссылки Firebase в мое приложение для iOS.Я сделал конфигурацию в соответствии с документацией и до этого момента все в порядке.При тестировании заметил, что ссылка открывает приложение и вызывает метод:

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
    }
}

1 Ответ

0 голосов
/ 24 февраля 2019
  1. Убедитесь, что didFinishLaunchingWithOptions возвращает true.
  2. Похоже, у вас есть немного более старая версия continueUserActivity - возможно, попробуйте более современную подпись:
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, 
      restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool
...