我的应用程序中同时集成了 Facebook 和 Gmail 登录,但是当我添加了 Gmail 登录的 open url 功能时,Facebook 登录就停止工作了。
以下是我应用程序中用于 open url 的代码:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
var shouldOpen :Bool = FBSDKApplicationDelegate.sharedInstance().application(application,openURL: url,sourceApplication: sourceApplication,annotation: annotation)
shouldOpen = shouldOpen ? shouldOpen : GIDSignIn.sharedInstance().handleURL(url,
sourceApplication: sourceApplication,
annotation: annotation)
return shouldOpen
}
这在Facebook登录时运作良好,但当我为iOS 9添加Gmail的openurl方法时,问题就出现了,即在Facebook登录后,我们无法重定向回应用程序。在模拟器中,白色屏幕显示在Safari中。这是iOS 9的Gmail登录代码:
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
if #available(iOS 9.0, *) {
return GIDSignIn.sharedInstance().handleURL(url,
sourceApplication: options[UIApplicationOpenURLOptionsSourceApplicationKey] as! String?,
annotation: options[UIApplicationOpenURLOptionsAnnotationKey])
}
return true
}
如果我把上面的代码注释掉,Facebook登录就可以正常工作了。我猜问题可能是在iOS 9中,我也必须为Facebook的openurl返回布尔值。但我不知道该怎么做?谢谢。