我实现了一个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");
}
}
Run Code Online (Sandbox Code Playgroud)
登录后,当我返回应用程序时,checkLogIn方法被调用但[FBSDKAccessToken currentAccessToken]仍然返回NO.但是,在我按下iPhone上的主页按钮并返回应用程序后,它会更改为YES.
如何立即更新,以便我可以向用户显示另一个视图控制器?
更新:
我找到了回到应用程序后执行正确代码的方法.关键是使用FBSDKAccessTokenDidChangeNotificationNotification Center.所以最终的结果是这样的:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
这样,令牌将被更新,它将起作用.