ios - xCode 8,swift 3,使用 LoginManager 的 Facebook SDK 登录必须点击两次才能打开 FB 登录表单

标签 ios swift xcode facebook-login

我正在使用以下功能登录 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):

        }
    }
}

最佳答案

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

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")
        }
    }

关于ios - xCode 8,swift 3,使用 LoginManager 的 Facebook SDK 登录必须点击两次才能打开 FB 登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928730/

相关文章:

iOS:用异常原因符号化崩溃日志

尝试使用委托(delegate)时 Swift EXC_BAD_INSTRUCTION

ios - Cocoapods - 框架 header 中缺少类

xcode - 我如何在 Swift 中永远重复一个 Action ?

c++ - 如何将 XCode 的 libc++ 与 top-of-trunk clang 一起使用?

ios - 如何在 Xcode 6 中重新打开模拟器键盘

ios - UICollectionViewCell 的 UiTextField,在 UICollectionViewController 中重叠

ios - 正则表达式在 xcode 中查找和替换...?

ios - UIlabel 使用大量内存和大量文本

xcode - 打开应用程序并从 URL 执行功能