2016-07-25 20 views
1

ログインボタンでGoogleのドキュメントに苦労しています。基本的には、Googleのログインボタンを押すとすぐに画面にアクティビティインジケータを追加します。しかし、実際にはサインインフローは、処理方法を選択が完了していない、とUIはもはやべきgoogle signin button press detection ios

https://developers.google.com/identity/sign-in/ios/api/protocol_g_i_d_sign_in_u_i_delegate-p#a3674af917a79f4b87a58f3f8ff4d4002

  1. - signInWillDispatch:error:

    の下のドキュメントから呼び出される唯一の二つの機能がありますスピナーやその他の「しばらくお待ちください」要素を表示します。もっと...

  2. - signIn:didSignInForUser:withError:

    サインインフローを終了し、エラーがnilであれば成功したしました。もっと... `

私はすぐに私は、Googleのログインボタンを押した後に呼び出されるものを知らない機能として、私は私のbeginActivityIndi​​catorコードを置くことができる場所を知りません。

おかげで、CODE WITH

--update - 以下は、私がGIDSignInUIDelegateとGIDSignInDelegateから継承私loginVCを持っている4つの機能をされています。私は、アクティビティインジケータを開始できるように、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") 
} 
+0

はあなたのコードを投稿します私はUIButton作成されたなかったと... –

+0

はそれほどIOSを知っているが、「ガイド」ことを確認してくださいしないでください。https://developers.google .com/identity/sign-in/ios/start-integrationこれはhttps://developers.google.com/identity/sign-in/ios/sign-in –

+0

コードがキャプテンに投稿されました。私は開発者のguidを通過しました、そして、ここで私は立ち往生しています。歓声 – user172902

答えて

0

問題が解決しました。上記のようなプログラムでボタンを作成することで解決できませんでした。単に次

@IBAction func signInWithGoogleBtn(sender: AnyObject) { 
    activityIndicatorBegin() 
    GIDSignIn.sharedInstance().signIn() 
}