2016-03-22 4 views
0

Я установил рамки «Google/SignIn» в свой проект. У меня есть интегрированный идентификатор клиента и все материалы, предоставляемые Google Документами, проблема в том, что когда я нажимаю кнопку входа в Google, она выводит меня на страницу входа в систему Google, где я ввожу свое имя пользователя и пароль после того, как я нажал кнопку отправки на странице, не перенаправляя ее на страницу мой App его еще в Google странице и его не возвращает никаких значений со страницы GoogleGoogle вход в систему в Swift

здесь мой пример кода:

@IBAction func socialAction(sender: AnyObject) { 
GIDSignIn.sharedInstance().uiDelegate = self 
GIDSignIn.sharedInstance().clientID = "************.apps.googleusercontent.com" 
GIDSignIn.sharedInstance().signIn() 
} 

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, 
    withError error: NSError!) { 
     if (error == nil) { 
      // Perform any operations on signed in user here. 
      let userId = user.userID     // For client-side use only! 
      let idToken = user.authentication.idToken // Safe to send to the server 
      let name = user.profile.name 
      let email = user.profile.email 

      print("gmail==>\(email)") 
      // ... 
     } else { 
      print("\(error.localizedDescription)") 
     } 
} 

в AppDelegate:

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 
    return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 

    if #available(iOS 9.0, *) { 
     var options: [String: AnyObject] = [UIApplicationOpenURLOptionsSourceApplicationKey: sourceApplication!, 
      UIApplicationOpenURLOptionsAnnotationKey: annotation] 
    } else { 
     // Fallback on earlier versions 
    } 
    return GIDSignIn.sharedInstance().handleURL(url, 
     sourceApplication: sourceApplication, 
     annotation: annotation) 


     } 
+0

по этой ссылке http://www.appcoda.com/google-sign-in-how-to/ –

+0

я получаю предупреждение как код после «возвращения» никогда не будет выполнено – user3458924

+0

я получаю ошибку – user3458924

ответ

1
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation 
{ 
    if([[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation]) 
    { 
     return YES; 
    } 
    else if ([[GIDSignIn sharedInstance] handleURL:url sourceApplication:sourceApplication annotation:annotation]) 
    { 
     return YES; 

    } 
    return NO; 
} 

этот код прекрасно работает в объективном с.

+0

да, вы обряд, но я уже интегрировал FBSDK и его не принимаю, см. мой обновленный вопрос. – user3458924

+0

bro может у более понятным я не получаю – user3458924

+0

Отсутствие возврата в функции, которая, как ожидается, вернет «Bool», это сообщение об ошибке будет достигнуто, пока я вставляю код ur, и вы можете проверить его \ – user3458924

2

r u обращение к URL в приложении делегат? и попробуйте это, если вы не обрабатываете.

func application(application: UIApplication, 
openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { 

return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: sourceApplication!, annotation: annotation) || FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) 
} 
+0

я получаю предупреждение как код после 'return' никогда не будет выполнен – user3458924

+0

, потому что первая строка функции вернет либо true, либо false (true, если URL-адрес был предназначен для SDK для Facebook, false, если нет.) или это google plus handleurl line никогда не исполняться. – Sahil

+0

bro все еще работает только для Facebook. когда я пытаюсь для google никаких действий делает – user3458924

Смежные вопросы