Swift 5 - Facebook 登录:LoginManager() 回调不会在安装 Facebook 应用程序时调用
Swift 5 - Facebook Login: LoginManager() callback doesn't call with Facebook App installed
我已经使用 cocoapods 将 Facebook SDK 更新到最新版本:
- 使用 FBSDKCoreKit (5.8.0)
- 使用 FBSDKLoginKit (5.8.0)
- 使用 FacebookCore (0.9.0)
- 使用 Facebook 登录 (0.9.0)
安装 Facebook 应用程序时,不会调用 LoginManager()
回调。未安装应用程序并使用浏览器时,它可以工作。
let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self, completion: { loginResult in
switch loginResult {
case .failed(let error):
print("\(error)")
case .cancelled:
print("cancelled")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
print("\(grantedPermissions) \(declinedPermissions)")
}
})
有什么想法吗?
更新到新的 SDK 已解决:
pod 'FBSDKCoreKit/Swift'
pod 'FBSDKLoginKit/Swift'
我遇到了同样的问题。对我来说,它缺少来自 AppDelegate 的代码(我们不使用 SceneDelegate)。除非安装了 FB 应用程序,否则登录将有效。前者使用网络视图类型 UI 但后者切换到 FB 应用程序,然后当返回到我们的应用程序时它挂起。查看 FB 帐户,我可以看到登录成功。
查看 FB 文档:https://developers.facebook.com/docs/facebook-login/ios/
(5. 连接您的 App Delegate 和 Scene Delegate)
我已经使用 cocoapods 将 Facebook SDK 更新到最新版本:
- 使用 FBSDKCoreKit (5.8.0)
- 使用 FBSDKLoginKit (5.8.0)
- 使用 FacebookCore (0.9.0)
- 使用 Facebook 登录 (0.9.0)
安装 Facebook 应用程序时,不会调用 LoginManager()
回调。未安装应用程序并使用浏览器时,它可以工作。
let loginManager = LoginManager()
loginManager.logIn(permissions: [.publicProfile, .email], viewController: self, completion: { loginResult in
switch loginResult {
case .failed(let error):
print("\(error)")
case .cancelled:
print("cancelled")
case .success(let grantedPermissions, let declinedPermissions, let accessToken):
print("\(grantedPermissions) \(declinedPermissions)")
}
})
有什么想法吗?
更新到新的 SDK 已解决:
pod 'FBSDKCoreKit/Swift'
pod 'FBSDKLoginKit/Swift'
我遇到了同样的问题。对我来说,它缺少来自 AppDelegate 的代码(我们不使用 SceneDelegate)。除非安装了 FB 应用程序,否则登录将有效。前者使用网络视图类型 UI 但后者切换到 FB 应用程序,然后当返回到我们的应用程序时它挂起。查看 FB 帐户,我可以看到登录成功。
查看 FB 文档:https://developers.facebook.com/docs/facebook-login/ios/
(5. 连接您的 App Delegate 和 Scene Delegate)