检测Facebook登录失败

时间:2014-08-18 03:46:43

标签: facebook parse-platform facebook-ios-sdk

我在我的应用程序中使用PFLogInViewController子类允许用户使用Facebook登录,但效果很好,但如果用户改变主意并拒绝我的应用程序访问Facebook帐户,登录将停止工作(正如预期的那样)但加载指标只是旋转。我从来没有收到错误告诉我它无法登录,这只是一个无限循环。

知道如何检测故障并停止UI显示加载指示器吗?

代码在下面,只是通过一些视觉调整直接子类化。


- (void)viewDidLoad
{
    [super viewDidLoad];

    // Customize the default parse login view
    [self setupUI];
}

- (void)setupUI {
    [self.logInView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]]];
    [self.logInView setLogo:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fdbk_logo"]]];

    // Set buttons appearance
    [self.logInView.facebookButton setImage:nil forState:UIControlStateNormal];
    [self.logInView.facebookButton setImage:nil forState:UIControlStateHighlighted];
    [self.logInView.facebookButton setBackgroundImage:[UIImage imageNamed:@"fb_login_btn"] forState:UIControlStateNormal];
    [self.logInView.facebookButton setTitle:@"" forState:UIControlStateNormal];
    [self.logInView.facebookButton setTitle:@"" forState:UIControlStateHighlighted];
}

2 个答案:

答案 0 :(得分:3)

这可能不是您正在寻找的解决方案,而只是我的观点:

我喜欢Parse,但我不久前停止使用内置控制器(PFLogin / Signup,PFQueryTableView等),因为虽然它们提供了不错的开箱即用功能,但它们在生产中使用起来有点太不完整应用程序。有这么多的场景,他们只提供你想要的90%(如你现在的情况),虽然他们确实节省了一些时间,而不是滚动你自己,一旦你自己做了你,然后有一些你可以自定义的东西希望并在将来重复使用!

答案 1 :(得分:0)

- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error {

     switch (state) {

          case FBSessionStateClosedLoginFailed:
               //login failed, do whatever you need to do
               break;
          default:
               break;

      }
}