1

アプリの起動中にユーザーにアラートを表示し、ユーザーがアラート ビューの [OK] ボタンをクリックすると、FB ログイン ダイアログがユーザーに表示されます。問題は、ホームボタンをクリックしてアプリを再起動してアラートを表示すると、[OK] をクリックしてもユーザーに Facebook のログインダイアログが表示されないことです。Facebook ios sdk 3.0 と xcode 4.5 gm を使用しました。*興味深いことに、アプリをバックグラウンドから強制終了すると、すべて正常に動作します。*以下は、Facebook の起動を完了したアプリのコードです。

if (!self.session.isOpen)
{
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"user_likes",
                            @"read_stream",@"publish_stream",@"email",
                            nil];

    self.session = [[FBSession alloc] initWithPermissions:permissions];


    if (self.session.state == FBSessionStateCreatedTokenLoaded)

    {
        // even though we had a cached token, we need to login to make the session usable
        [self.session openWithCompletionHandler:^(FBSession *session,
                                                  FBSessionState status,
                                                  NSError *error) {
    }];
    }
}  

これは、ユーザーがアラート ビューの [OK] ボタンをクリックしたときに呼び出すメソッドです。

-(IBAction) facebookLogin
{

if (self.session.isOpen)
{
    [self.session closeAndClearTokenInformation];        
} 
else
{
    if (self.session.state != FBSessionStateCreated) {
        // Create a new, logged out session.
        self.session = [[FBSession alloc] init];
    }


    [self.session openWithCompletionHandler:^(FBSession *session,
                                              FBSessionState status,
                                              NSError *error) {
        if (error) {
            NSLog(@"dex is %@",error.description);
        }
    }];

    }
}
4

2 に答える 2

0

Facebook開発者でこのドキュメントに従ってください。

ログインおよびログアウト機能の処理方法について説明します。それが言うように実装すると、完全に機能します。また、最新の 3.1 SDK を使用することもできます。

于 2012-09-27T16:58:38.507 に答える