xCode 8、swift 3、Facebook SDK 使用 LoginManager 登录必须单击两次才能打开 FB 登录表单

ken*_*nvu 5 xcode ios facebook-login swift

我使用下面的功能来登录 Facebook,但我总是必须单击登录按钮两次才能打开 Facebook 登录页面。

我已经在模拟器和设备上进行了测试。第一次单击登录按钮时,应用程序会转到 loginManager.logIn (...) 函数,但直到第二次单击才进入完成处理程序。

有人有这个问题和解决方案吗?我正在使用 xCode 8 和 Swift 3

private func loginWithFB(){
    let loginManager = LoginManager()
    loginManager.logIn([ .publicProfile, .userFriends, .email ], viewController: self) { loginResult in
        switch loginResult {
        case .failed(let error):
            print(error)
        case .cancelled:
            print("User cancelled login.")
        case .success(let grantedPermissions, let declinedPermissions, let accessToken):

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Nav*_*han 2

这段代码对我有用。每次点击按钮期间都会调用完成处理程序。

Xcode 版本 - 8.0

FBSDK 版本 - 4.15.1

@IBAction func loginTest(_ sender: UIButton) {
        let loginManager = FBSDKLoginManager()
        loginManager.logIn(withReadPermissions:["public_profile","user_friends","email"], from: self) {
            loginResult,error in
            print("completion handler called")
        }
    }
Run Code Online (Sandbox Code Playgroud)