iOS的Facebook和Googlelogin在同一时间?

我试图在同一个应用程序中实现谷歌+和Facebooklogin。 我遵循了Parse和Google的指示,我首先成功实现了Facebooklogin。 然后我开始按照谷歌的指示。 做完之后,现在我在AppDelegate.swift文件中有这两个函数:

对于谷歌:

func application(application: UIApplication, openURL url: NSURL, options options: [String: AnyObject]) -> Bool { return GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey], annotation: options[UIApplicationOpenURLOptionsAnnotationKey]) } 

对于Facebook:

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

我是否需要将这两个代码块合并为1,如在某些post中看到的那样

Google SignIn SFSafariViewController / WebView在接受权限后redirect到Google.com

或者他们可以保持在2个不同的块? 谢谢

你需要把它们结合起来。 最简单的方法是使用|| 在返回声明。 尝试这个:

 func application(application: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as! String, annotation: nil) || GIDSignIn.sharedInstance().handleURL(url, sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as? String, annotation: options[UIApplicationOpenURLOptionsAnnotationKey] as? String) } 

您可以使用Google Identity Toolkit(现在重新打包为Firebase )来实现此目的,并允许其他IDP的扩展