我实现了一个Facebook登录按钮,效果非常好。但是,在用户成功登录Facebook并返回到应用程序之后,[FBSDKAccessToken currentAccessToken]
返回NO
。我添加了一个观察者,以查看返回给应用程序后我想要的代码是否正在运行:
-(void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn)name :UIApplicationWillEnterForegroundNotification object:nil];
}
-(void)checkLogIn
{
NSLog(@"IN CHECK LOG IN");
if ([FBSDKAccessToken currentAccessToken]) {
NSLog(@"Access Token Activated");
}
}
在登录后,当我返回到应用程序时,正在调用
checkLogIn
方法,但[FBSDKAccessToken currentAccessToken]
仍返回NO
。但是,当我按iPhone上的“主页”按钮并返回到应用程序后,它变为"is"。
如何立即更新,以便可以向用户显示另一个 View Controller ?
更新:
回到应用程序后,我找到了执行正确代码的方法。关键是使用
FBSDKAccessTokenDidChangeNotification
是Notification Center。所以最终结果将是这样的: [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];
这样, token 将被更新,并且将起作用。
最佳答案
请检查您的appDelegate类并实现FB SDK的所有必需方法。我要附上相同的屏幕截图。