2016-03-22 11 views
0

Ich habe pod 'Google/SignIn' Framework in meinem Projekt installiert. Ich habe Client-ID und alle von Google Docs zur Verfügung gestellten Sachen integriert, das Problem ist, wenn ich google-Zeichenknopf knacke, nimmt es mich zur google Zeichen-Seite dort i, meinen Benutzernamen und Kennwort eintragend, nachdem ich Schlag-Knopf die Seite eindringe, die es nicht weiterleitet meine App seines in Google-Seite nach wie vor und das keine Werte von Google-SeiteGoogle melden Problem in Swift

hier meinen Beispielcode Rückkehr:

@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)") 
     } 
} 

in 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

diesen Link http://www.appcoda.com/google-sign-in-how-to/ folgen –

+0

i nach ‚Rückkehr‘ als Warncode angezeigt bekommen wird nie – user3458924

+0

i Fehler immer ausgeführt werden – user3458924

Antwort

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; 
} 

dieser Code ist perfekt in Objective-C arbeiten.

+0

ja, Sie sind Ritus, aber ich habe bereits integriert FBSDK auch seine nicht akzeptiert sehen meine aktualisierte Frage – user3458924

+0

bro kann man klarer, ich bekomme keine – user3458924

+0

fehlende Rückgabe in einer Funktion erwartet, dass 'Bool' zurückgegeben wird dies die Fehlermeldung Ziel bekommen, während ich Ihren Code einfügen können Sie überprüfen \ – user3458924

2

Sie behandeln URL in App-Delegaten? und versuche das, wenn du nicht handelst.

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

ich bekomme Warnung als Code nach 'Rückkehr' wird nie ausgeführt – user3458924

+0

, weil die erste Zeile der Funktion wird entweder wahr oder falsch (True, wenn die URL für die Facebook-SDK gedacht war, falsch, wenn nicht.) oder google plus handleurl Linie niemals ausgeführt werden. – Sahil

+0

bro funktioniert immer noch nur für Facebook. wenn ich versuche für Google keine Aktion macht – user3458924