2012-02-29 43 views
0

正如标题所说,我的项目绝不会弹出FB登录屏幕,直到我呼吁Facebook连接 - 我必须在登录之前单击注销?

[facebook logout]; 

这是有道理的,当我已经加了,但它发生在启动时,以及(即用户尚未登录)。

嗯......我刚刚尝试重置模拟器中的内容和设置,并且似乎已经解决了这个问题。为了我自己的安心,为什么当我关闭模拟器并重新运行项目时,它不会恢复到应用程序为“新”且尚未运行之前或恢复状态的状态 - 登录用户信息将立即可用?

在我的设备我刚才测试了这一点:

  • 全新安装
  • 打开应用,通过FB连接登录
  • 关闭应用程序,在后台运行删除应用
  • 重新打开应用
  • 尝试登录,无响应,直到我第一次单击注销

那么是不是保留了之前登录过的事实?如果是这样,是否有一个“loggedInAlready”变量或类似的东西,我可以检查?

回答

0

将此添加到didFinishLaunchingWithOptions

if([facebook isSessionValid])//if already able to log in 
{ 
    [self loginToFacebook];//attempt to login automatically on startup 
} 

似乎已经解决了这个问题。我想这是因为我有:

if([facebook isSessionValid]){ 
    [facebook login]; 
} 

在登录按钮按下,当它恢复它仍然是一个有效的会话,所以按下按钮不会做任何事情,直到注销按钮结束会话。 现在它会自动检查会话是否在启动时有效,如果是这样,它会直接登录我。

:-)一切都好,结束了。