使用 FBSDK for iOS 登录冻结
Posted
技术标签:
【中文标题】使用 FBSDK for iOS 登录冻结【英文标题】:Login freezes using FBSDK for iOS 【发布时间】:2016-08-25 12:50:48 【问题描述】:我有一个使用 Facebook 登录 (FBSDK 4.11.0) 的 swift 编写的 ios 应用程序。该应用程序正在生产中,FB-login 运行良好。
但是,在进行新更新时,我意识到我无法再使用 FB 登录或注册。在弹出的 web 视图中授权应用程序后,登录过程停止。它加载一个空白页面并静止不动。
以下代码与当前在应用商店的版本上完美运行的代码完全相同。我认为这可能与该应用程序当前处于开发状态有关,但在创建测试版并通过 testflight 下载后,我仍然遇到同样的问题。
这是我的代码。
func fbLoginInitiate()
if hasSeenPermissionPopup(LoginType.Facebook)
Globals.mixpanel.track("Initiated FB login")
FBSDKLoginManager().logInWithReadPermissions(["public_profile", "email", "user_birthday"], fromViewController: self, handler: (result:FBSDKLoginManagerLoginResult!, error:NSError!) -> Void in
if (error != nil)
// Process error
self.removeFbData()
else if result.isCancelled
// User Cancellation
self.removeFbData()
else
//Success
if result.grantedPermissions.contains("email") && result.grantedPermissions.contains("public_profile") && result.grantedPermissions.contains("user_birthday")
//Do work
self.fetchFacebookProfile()
else
Globals.mixpanel.track("Facebook login failed")
SweetAlert().showAlert("Ooops!", subTitle: "Noe gikk galt. Ta kontakt med Mojob dersom feilen vedvarer", style: AlertStyle.Warning)
)
回调中的错误为零,只有当我取消请求时才会显示结果。我没有对应用程序中的 info.plist 或与 FB 有关的任何其他设置进行任何更改。
如果有人遇到过类似的情况,我非常感谢您了解您是如何解决问题的。
登录的第一部分按预期工作
第二部分冻结
【问题讨论】:
您使用的是哪个 iOS 版本?在 iOS 10 上注意到了同样的情况.. 我使用的是 9.3.2 版本 谢谢!真的很感激! 【参考方案1】:您的 AppDelegate 是否为 facebook SDK 正确配置?如果没有,您应该向其添加以下功能:
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation)
application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
查看此问题以获取更多信息:
https://github.com/facebook/react-native-fbsdk/issues/72
在问题中,他们指的是我找到正确设置的网站:
https://developers.facebook.com/docs/ios/getting-started#delegate
【讨论】:
以上是关于使用 FBSDK for iOS 登录冻结的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 FBSDK for iOS 获取 Facebook 好友列表?
如何在 iPhone 的 Swift iOS 中使用 FBSDK 获取用户电子邮件地址?
iOS FBSDK v4 loginbuttondidlogout 无法识别的选择器