Ios 如何处理从多个社交登录帐户返回应用的登录重定向?
我正在制作一个应用程序,允许用户从谷歌、Facebook、twitter等不同平台登录。在应用程序委托中,我们必须为每个平台实现一个功能应用程序:openURL:options:。 目前我的函数是这样的Ios 如何处理从多个社交登录帐户返回应用的登录重定向?,ios,swift,facebook,twitter,facebook-sdk-4.0,Ios,Swift,Facebook,Twitter,Facebook Sdk 4.0,我正在制作一个应用程序,允许用户从谷歌、Facebook、twitter等不同平台登录。在应用程序委托中,我们必须为每个平台实现一个功能应用程序:openURL:options:。 目前我的函数是这样的 func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { // Todo handle based
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
// Todo handle based on the the arguments and return the bool value to be checked on iPHONE with facebook, google and twitter app
let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: [:])
Twitter.sharedInstance().application(app, open: url, options: options)
return handled
}
如上所述,我返回了handled,这是Facebook的重定向句柄结果。谷歌和推特也会返回bool值。
对于上述功能,返回Facebook、google和twitter的handle bool值的最安全和正确方法是什么?试试这种方法
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let facebookDidHandle = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation])
let googleDidhandle = GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String, annotation: [:])
let twitterDidHandle = Twitter.sharedInstance().application(app, open: url, options: options)
return googleDidHandle || facebookDidHandle || twitterDidHandle
}
您不知道用户尝试的登录类型吗?在尝试登录之前设置一个变量,并在控件返回此函数时进行检查,以了解您要查找的结果类型。