Custom Google Sign-In button - iOS

后端 未结 10 2512
别那么骄傲
别那么骄傲 2020-12-24 01:19

I want to customize Google Sign-In button like below:-

I have tried below links, but none of them helped really much:- How to customize google sign in button?
ht

10条回答
  •  一个人的身影
    2020-12-24 02:06

    You can add your own button instead of using Google Sign-In button Do follwing things

    1)Add this code in AppDelegate.m file

    2)Add your own button into storyBoard and give class name as GPPSignInButton and set UIImageView on that button.

    3)drag action into viewController

    AppDelegate.m file

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        GPPSignIn *SignIn = [GPPSignIn sharedInstance];
    
        [GPPSignIn sharedInstance].clientID = @"532796865439-juut4g2toqdfc13mgqu5v9g5cliguvmg.apps.googleusercontent.com";
    
        SignIn.scopes = @[kGTLAuthScopePlusLogin];
        return YES;
    } 
    
    -(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
        if ([GPPURLHandler handleURL:url sourceApplication:sourceApplication annotation:annotation]) {
    
            return YES;
        }
    
        return wasHandled;
    }
    
    
    
    
    ViewController.m file
    
    @property (strong, nonatomic) IBOutlet GPPSignInButton *btn;
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
       [GPPSignIn sharedInstance].delegate = self;
        [[GPPSignIn sharedInstance] trySilentAuthentication];
    
        AppDelegate *appDelegate = (AppDelegate *)
        [[UIApplication sharedApplication] delegate];
      }
    
    
    
    -(void) finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error
    {
        GPPSignIn *signIn = [GPPSignIn sharedInstance];
        signIn.shouldFetchGoogleUserEmail = YES;
        signIn.delegate = self;
    
        if (error == nil) {
            if(auth.canAuthorize){
                GTLServicePlus *service = [[GTLServicePlus alloc] init];
                [service setRetryEnabled:YES];
                [service setAuthorizer:auth];
    
                GTLQueryPlus *query = [GTLQueryPlus queryForPeopleGetWithUserId:@"me"];
    
    
                // 1. Create a |GTLServicePlus| instance to send a request to Google+.
                GTLServicePlus* plusService = [[GTLServicePlus alloc] init] ;
                plusService.retryEnabled = YES;
    
                // 2. Set a valid |GTMOAuth2Authentication| object as the authorizer.
                [plusService setAuthorizer:[GPPSignIn sharedInstance].authentication];
    
                // 3. Use the "v1" version of the Google+ API.*
                plusService.apiVersion = @"v1";
                [plusService executeQuery:query
                        completionHandler:^(GTLServiceTicket *ticket,
                                            GTLPlusPerson *person,
                                            NSError *error) {
                            if (error) {
                                //Handle Error
                            } else {
                                NSLog(@"\nEmail= %@", [GPPSignIn sharedInstance].authentication.userEmail);
                                NSLog(@"\nGoogleID=%@", person.identifier);
                                NSLog(@"\nUser Name=%@", [person.name.givenName stringByAppendingFormat:@" %@", person.name.familyName]);
                                NSLog(@"\nGender=%@", person.gender);
                            }
                        }];
    
            }
        }
    }
    

提交回复
热议问题