приложение: openUrl не вызывается при использовании GIDSignIn - PullRequest
0 голосов
/ 08 октября 2018

Вот как выглядит мой AppDelegate:

class AppDelegate: UIResponder, UIApplicationDelegate,GIDSignInDelegate {
func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
    if let error = error {
        // ...
        return
    }

    guard let authentication = user.authentication else { return }
    let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
                                                   accessToken: authentication.accessToken)
}

//For ios 9.0 or above
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any])
    -> Bool {

        return GIDSignIn.sharedInstance().handle(url,
                                                 sourceApplication:options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
                                                 annotation: [:])
}

func application(_ application: UIApplication, open url: URL, sourceApplication:

    return GIDSignIn.sharedInstance().handle(url,
                                             sourceApplication: sourceApplication,
                                             annotation: annotation)
}

Я добавил кнопку GIDSignIn в свою раскадровку и в своем ViewController назначил ей UIDelegate:

class LoginRegisterViewController: UIViewController,UITextFieldDelegate,GIDSignInUIDelegate {
  override func viewDidLoad() {
    super.viewDidLoad()

    bindUIDelegate()
    GIDSignIn.sharedInstance().uiDelegate = self

            //registerForKeyboardNotifications()
}
.......

Когда я щелкнулGIDSignInButton, он открывает страницу входа в Google, а затем я ввел свои учетные данные и нажал кнопку входа.Затем он возвращает меня к моему приложению.

Я вставляю точку останова в метод AppDeletgate.sign (), я вижу, что он получает удар после перенаправления обратно в приложение.Но я не вижу своего приложения: метод openurl вызывается, даже когда я ставлю точку останова.

Итак, мой вопрос: когда этот метод получает удар?Говорят, что в конце процесса аутентификации отсюда: https://firebase.google.com/docs/auth/ios/google-signin. Но я не вижу, чтобы его ударили, и похоже, что AppDeletgate.sign () все еще работает нормально, хотя я удаляю метод application: openurl.

...