Вход в Google завершен.WithAuth вызывается только после двойного нажатия

Я пытаюсь настроить Google логин в своем приложении, и я настроил для него следующую функцию:

-(void) performGoogleLogin{

GPPSignIn *signIn = [GPPSignIn sharedInstance];
signIn.shouldFetchGooglePlusUser = YES;
signIn.shouldFetchGoogleUserEmail = YES;

signIn.clientID = kClientId;

signIn.scopes = @[ @"email" ];

signIn.delegate = self;

[signIn authenticate];

}

Когда я делаю это в первый раз, приложение открывает Safari, где я даю разрешения. После возвращения в мое приложение вызывается эта функция в моем AppDelegate:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

   return [GPPURLHandler handleURL:url
                sourceApplication:sourceApplication
                       annotation:annotation];
}

Но тогда функция -(void) finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error не вызывается сразу. Он вызывается только тогда, когда я вызываю функцию performGoogleLogin, нажимая кнопку во второй раз. Любая идея, почему это может происходить?


person Rameez Hussain    schedule 03.01.2014    source источник


Ответы (1)


Похоже, что дубликат finishedWithAuth не вызывается после метода аутентификации

Сделайте GPPSignIn переменной уровня класса, чтобы избежать сбора мусора, когда устройство переключается на Safari для входа в систему.

person Jonathon Horsman    schedule 26.03.2014