繁体   English   中英

带有新Firebase的iOS自定义Facebook登录按钮

[英]iOS Custom Facebook Login Button with New Firebase

如何获得自定义Facebook登录按钮以使用新的firebase?

根据新的firebase文档,它让我们创建一个FBSDKLoginButton并设置它的委托。 FBSDKLoginButton在外观方面无法自定义。

只需创建自定义UIButton并将其连接到以下方法即可。

在此处阅读有关facebook-login的自定义按钮的更多信息: https//developers.facebook.com/docs/facebook-login/ios#custom-login-button

#import <FBSDKLoginKit/FBSDKLoginKit.h>

- (IBAction)facebookLoginPressed:(id)sender{
        FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
        [login
         logInWithReadPermissions: @[@"public_profile"]
         fromViewController:self
         handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
             if (error) {
                 NSLog(@"Process error");
             } else if (result.isCancelled) {
                 NSLog(@"Cancelled");
             } else {
                 NSLog(@"Logged in");
                 FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
             }
         }];
}

在尝试了一段时间之后,我发现一个很好的工作,对你和其他想要实现相同目标的人有用。 这假设您已经将每个Firebase文档的Facebook按钮集成到您的项目中,并在您的控制器中为其创建了IBOutlet按钮。

首先,将自定义图像或按钮添加到视图中。 就我而言,它是一个图像。 您还可以将现有FB按钮设置为隐藏。

在此输入图像描述

接下来,通过在自定义按钮或图像上拖放UITapGestureRecognizer对象来添加UITapGestureRecognizer对象。

在此输入图像描述

不要忘记将图像设置为启用用户交互!

在此输入图像描述

接下来,将UITapGestureRecognizer从故事板添加到控制器,作为具有UITapGestureRecognizer类型的操作。

在此输入图像描述

最后,在此IBAction内部执行以下操作以触发现有Firebase FBLoginButton。

@IBAction func customFBButtonPressed(_ sender: UITapGestureRecognizer) { 
    //Reference and fire the original fbLoginButton that you already set up.       
    fbLoginButton.sendActions(for: .touchUpInside)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM