我正在使用 iPhone 版 Facebook Connect 并关注 official instructions .我使用以下代码显示登录对话框:
FBLoginDialog* dialog = [[[FBLoginDialog alloc] initWithSession:session] autorelease];
[dialog show];
(请注意,当我使用 FBLoginButton 方法而不是直接显示对话框时,结果是相同的。)
对话框按预期弹出,但正如您在下面的屏幕截图中看到的那样,它太大了,看起来像完整的 Facebook 主页。我可以平移对话框以显示登录按钮,但一旦我登录,它就会继续在对话框内显示常规 Facebook 页面。它从不调用我的 session:didLogin
回调。
我做错了什么吗?
alt text http://img.skitch.com/20091115-t24w7p5gpa6iqgehjdc4f1awfs.jpg
最佳答案
我终于想通了...我正在我的应用委托(delegate)的 applicationDidFinishLaunching
方法中初始化 FBSession
。然后我在我的 View Controller 的 viewDidAppear
中触发了 Facebook 登录代码。
但是,applicationDidFinishLaunching
看起来像这样:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:viewController.view];
[window makeKeyAndVisible];
self.session = [FBSession sessionForApplication:FB_API_KEY secret:FB_APP_SECRET delegate:self];
}
这意味着我在初始化 FBSession
之前就显示了窗口,显然 nil session 会导致我上面描述的行为。在更改 applicationDidFinishLaunching
以首先创建 FBSession
之后,现在一切都按预期工作。哦...;)
关于iphone - Facebook 连接登录对话框不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738246/