0

Facebook ログインを実装しましたが、正しく動作しています。しかし、私はこの画面に問題があります:

ここに画像の説明を入力

これは Facebook フレームワークによって直接提供されるため、アクションを直接アタッチすることはできません。そのビューは、Facebook アプリを Facebook アカウントに関連付けるために使用されます。問題は、ユーザーがキャンセル ボタンを押したかどうかを検出するにはどうすればよいかということです。Facebookセッションの状態を印刷しようとしました

- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error
{
    NSLog(@"stato %u",state);
    
    switch (state) {
        case FBSessionStateOpen:
            
            break;
        case FBSessionStateClosed:
            break;
        case FBSessionStateCreated:
            break;
        case FBSessionStateCreatedOpening:
            break;
        case FBSessionStateOpenTokenExtended:
            break;
        case FBSessionStateCreatedTokenLoaded:
            break;
        case FBSessionStateClosedLoginFailed:
            // Once the user has logged in, we want them to
            // be looking at the root view.
            
            [FBSession.activeSession closeAndClearTokenInformation];
            break;
        default:
            break;
    }
    if (error) {
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Error"
                                  message:error.localizedDescription
                                  delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil];
        [alertView show];
    }
}

ただし、押されたボタンによって独立して、常に同じ状態に戻ります。

ありがとう

4

2 に答える 2

0

常に返される状態は何ですか? これは、正しくセットアップされていない何かが他にあることを示唆していますか?

このようなものをviewWillAppear/viewDidAppearに追加できるはずです。

// See if the app has a valid token for the current state.
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
    // To-do, show logged in view
} else {
    // No, display the login page.
    [self showLoginView];
}
于 2013-09-30T15:29:26.087 に答える