Я борюсь с документацией Google по кнопкам входа в систему. По сути, я хочу добавить индикатор активности на экран, как только я нажму кнопку входа в Google. Однако есть только две функции, которые действительно вызываются из приведенной ниже документации.
- signInWillDispatch:error:
Поток входа завершил выбор дальнейших действий, и пользовательский интерфейс больше не должен отображать счетчик или другой элемент «подождите». Более...
- signIn:didSignInForUser:withError:
Поток входа завершился и прошел успешно, если ошибка равна нулю. Подробнее...`
Я не знаю, куда я могу поместить свой код beginActivityIndicator, поскольку я не знаю, какая функция вызывается сразу после нажатия кнопки входа в Google.
Спасибо,
--ОБНОВЛЕНИЕ С КОДОМ -- Ниже приведены четыре функции, которые у меня есть в моем loginVC, которые унаследованы от GIDSignInUIDelegate и GIDSignInDelegate. В значительной степени мне нужно добраться до функций до SignInWillDispatch, чтобы я мог инициировать индикатор активности. Однако я не смог найти, где это находится в документации. Я попытался включить распознаватель жестов нажатия на кнопку Google. Однако, когда я это делаю, функция входа в систему перестает работать полностью, как если бы это был просто пустой UIView.
// Google login buttob
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().delegate = self
// Uncomment to automatically sign in the user.
//GIDSignIn.sharedInstance().signInSilently()
// TODO(developer) Configure the sign-in button look/feel
let googleSignInBtn = GIDSignInButton()
googleSignInBtn.frame.size = loginButton.frame.size
googleSignInBtn.center.x = loginButton.center.x
googleSignInBtn.center.y = loginButton.center.y + 80
googleSignInBtn.style = .Wide
self.view.addSubview(googleSignInBtn)
func signIn(signIn: GIDSignIn!, presentViewController viewController: UIViewController!) {
print("Signed in with google")
}
func signInWillDispatch(signIn: GIDSignIn!, error: NSError!) {
print("Signin Will Dispatch")
}
func signIn(signIn: GIDSignIn!, dismissViewController viewController: UIViewController!) {
print("GoogleSignInDismiss")
}
func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
activityIndicatorBegin() // Having the activity indicator start here is too late. I need it to start as soon as the google button is pressed. Otherwise there would be a moment just after the google view dismisses without activity indicator
if let error = error {
print(error.localizedDescription)
return
}
let authentication = user.authentication
let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken, accessToken: authentication.accessToken)
FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
if let error = error {
self.showErrorAlert("Error Sign in Firebase with google", message: error.localizedDescription)
} else {
}
self.activityIndicatorEnd()
}
}
func signIn(signIn: GIDSignIn!, didDisconnectWithUser user:GIDGoogleUser!, withError error: NSError!) {
// Perform any operations when the user disconnects from app here.
print("didDisconnectWithUser")
}