Обнаружение входа в систему iOS Google+ было неполным.

Под "неполным" я имею в виду конкретное путешествие пользователя

  • пользователь открывает приложение iOS и выбирает Google+ для входа.
  • Google SDK переводит пользователя в приложение G + для входа в систему (или веб-просмотр, если G + не установлен).
  • пользователь переходит от Google+ (например, нажав кнопку "домой" ) без принятия или отклонения запрошенных разрешений.
  • пользователь переходит к iOS-приложению.

Используя Facebook SDK, когда приложение становится активным, вход в сессию закрывается, если пользователь выполняет аналогичное путешествие по вызову [FBAppCall handleDidBecomeActive];

Похоже, что в Google+ SDK нет ничего подобного.

Как я могу обнаружить, что пользователь никогда не заполнял знак Google+ в пути?

Использование iOS7, SDK Google+ pod 'google-plus-ios-sdk', '~> 1.5'

Ответ 1

В соответствии с описанной ситуацией пользователь пропустил процесс аутентификации входа в Google или перешел на главный экран, нажав кнопку "домой".

1st Way: -

В этом случае GPPSignInDelegate никогда не будет вызван

- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth
                   error: (NSError *) error {
    NSLog(@"Received error %@ and auth object %@",error, auth);
}

Теперь, если разработчик сохраняет ключ авторизации Google Plus в NSUserDefault или в plist или в локальном БД, он непосредственно проверяет его в методе didBecomeActive AppDelegate.

-(void)applicationDidBecomeActive:(UIApplication *)application
{
  //Check whether Google Plus auth key is present from the stored location or variable    
}

Второй способ: -

В методе applicationDidBecomeActive можно напрямую проверить, завершена ли проверка подлинности или нет.

-(void)applicationDidBecomeActive:(UIApplication *)application
    {
       if ([[GPPSignIn sharedInstance] authentication]) {
             // The user has  signed in properly
           }
        else
         {
               // The user has  not  signed in properly
         }
    }