我正在通过 facebook 在 ios 应用程序中集成登录,在该应用程序启动期间,我向用户显示警报,当用户单击警报视图上的 OK 按钮时,将向用户显示 FB 登录对话框。问题是当我单击主页按钮并重新启动应用程序以显示警报时,然后单击确定后不会向用户显示 facebook 登录对话框。我使用了 facebook ios sdk 3.0 和 xcode 4.5 gm。*有趣的是,当我从后台杀死应用程序时,一切正常。*以下是应用程序中的代码确实为 facebook 完成启动
if (!self.session.isOpen)
{
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"read_stream",@"publish_stream",@"email",
nil];
self.session = [[FBSession alloc] initWithPermissions:permissions];
if (self.session.state == FBSessionStateCreatedTokenLoaded)
{
// even though we had a cached token, we need to login to make the session usable
[self.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
}];
}
}
这是我在用户单击警报视图上的确定按钮时调用的方法
-(IBAction) facebookLogin
{
if (self.session.isOpen)
{
[self.session closeAndClearTokenInformation];
}
else
{
if (self.session.state != FBSessionStateCreated) {
// Create a new, logged out session.
self.session = [[FBSession alloc] init];
}
[self.session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
if (error) {
NSLog(@"dex is %@",error.description);
}
}];
}
}