Facebook和谷歌用Swift登录

时间:2016-06-15 13:25:44

标签: ios swift facebook google-signin

我在屏幕上为Google和Facebook设置了两个自定义登录按钮。这是我在AppDelegate中编写的代码,它导致了我将在代码

之后解释的问题
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
        FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)



        return true
    }
     func application(application: 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])
            } else {
                // Fallback on earlier versions
            }

            return true
    }

如果我在此处单击“确定”按钮后编写此代码:

enter image description here

屏幕没有关闭并停留在那里。但是,如果我们点击"允许"按钮。但是,如果我只使用此代码:

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



            return true
        }

然后删除其他功能然后Facebook" OK"按钮工作正常。当我添加这个功能时,为什么Facebook不工作?

func application(application: 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])
                } else {
                    // Fallback on earlier versions
                }

                return true
        }

3 个答案:

答案 0 :(得分: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)
}

iOS Facebook and Google login at the same time?

答案 1 :(得分:1)

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

//首先测试这个条件,如果它的工作是put(或)条件int返回语句GIDSignIn标志值

答案 2 :(得分:0)

Swift 3.0中的以下功能适用于iOS 8.0及更高版本。

//早期版本的回退

Communication links failiure, The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
相关问题