我正在使用FB sdk for iOS(3.9)。
所以,按照Facebook开发者的教程,我在AppDelegate中进行了以下检查。
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
NSLog(@"There is token for session");
} else {
// No, display the login page.
NSLog(@"There isn't token for session");
}
当我重新启动我的应用时,在第一次启动后请求权限后,我可以看到有一个令牌,正如预期的那样。
但是在我的下一个节目中,如果我称之为:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if (FBSession.activeSession.isOpen) {
NSLog(@"FBSession is open. Will populate user details.");
[self populateUserDetails];
} else {
NSLog(@"Session is not open");
}
然后我看到Session is not open
。
为了使其工作,我必须将我的委托功能更改为:
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// To-do, show logged in view
NSLog(@"There is token for session");
[self openSession]
} else {
// No, display the login page.
NSLog(@"There isn't token for session");
}
那么,我是否必须每次都明确打开会话?我认为退出应用后会话不会过期。
您能否详细解释一下,因为我无法从Facebook开发者网站上获取它。