Facebook和Google+login
我在我的应用中使用了Google+和Facebook。 我的问题是,他们都需要在AppDelegate的OpenURL方法。
对于Facebooklogin:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) }
对于Google+login:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool { return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation) }
如何在同一个应用程序中同时使用Google +和Facebook?
解决scheme更新了Xcode 7.0和Swift 2.0
return FBSDKApplicationDelegate.sharedInstance().application(app, openURL: url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil) || GPPURLHandler.handleURL(url, sourceApplication: options["UIApplicationOpenURLOptionsSourceApplicationKey"] as! String, annotation: nil)
**
Swift 3.0另一个解决scheme
**
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { if url.scheme == "fb1675189366130133" { return FBSDKApplicationDelegate.sharedInstance().application(application, open: url, sourceApplication: sourceApplication, annotation: annotation) }else{ return GIDSignIn.sharedInstance().handle(url, sourceApplication: sourceApplication, annotation: annotation) } }
我find了一个解决scheme,使用这一点的代码:
if url.scheme == "fb1111111111111" { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } else { return GPPURLHandler.handleURL(url, sourceApplication: sourceApplication, annotation: annotation) }