4

我有一个应用程序,用户可以在其中选择登录 FB。我的代码主要基于 FB 的教程,并且在大多数情况下,应用程序和 FB 集成按预期工作。我遇到的问题是该应用程序不记得从启动到启动用户选择将应用程序连接到 FB。我检查了 AppDelegate.m 以检查缓存的 FBSession:

   if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
        // Yes, so just open the session (this won't display any UX).
        NSLog(@"The state is IS 'State created token loaded'");
        [self openSessionWithAllowLoginUI:NO];
    } else {
        // No, display the login page.
        NSLog(@"The state is NOT 'State created token loaded'");
        [self openSessionWithAllowLoginUI:YES];
    }

每次我启动应用程序时,控制台中都会显示“状态不是'已加载状态创建的令牌'”行。这让我觉得我没有做正确的事情以使 FB 登录从启动到启动持续存在。

我真的可以在这里使用一些建议。需要做什么来确保“FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded”在应用启动时为真?

4

1 回答 1

1

如果您在应用程序启动时拥有此代码,请注意:

FBSession.activeSession

可能还没有设置。您想要检查缓存令牌的操作类似于:

if (![self openSessionWithAllowLoginUI:NO]) {
    [self openSessionWithAllowLoginUI:YES];
}

如果存在缓存令牌,则第一次调用“NO”将同步返回 true 值。如果没有缓存的令牌,则返回 no。此时,您可以强制登录 UX 发生。

于 2012-09-26T02:13:58.507 回答