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的扩展