应用程序打开在用户validationfacebook后未调用的Url方法

我已将ios应用程序中的facebook升级到3.0,并使用https://developers.facebook.com/docs/howtos/login-with-facebook-using-ios-sdk/中提供的代码通过Facebook登录用户,但是问题是用户允许facebook访问后- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation方法未被调用。 但有趣的是,当我创建一个新的应用程序并在该应用程序中集成相同的代码时,在那里调用相同的方法。我正在使用xcode 4.4。 任何建议为什么它与我现有的代码一起发生。

确保你已经设置了fburl,并且appid很好。 如果设备/模拟器具有多个使用相同facebook应用程序的应用程序,则可能发生。

这可能是因为您的旧应用程序设置为不在后台运行,如应用程序plist中所设置的那样? 我一直有同样的问题。 看来,如果应用程序在后台运行,它将返回并调用openURL。 但是如果应用程序没有在后台运行,它将返回并调用application:didFinishLaunchingWithOptions,而不是调用openURL。 可以从启动选项中获取url:

 NSURL *url = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey]; 

但我还没弄明白如何调用它以使其与应用程序具有相同的效果:从Facebook身份validation返回时的openURL。 希望这会有所帮助。

将xcode更新为4.5 GM以确保正常工作,可能是xcode以前版本的问题。