Ios4 iOS 4.0设备上的Facebook iOS SDK

Ios4 iOS 4.0设备上的Facebook iOS SDK,ios4,facebook-ios-sdk,Ios4,Facebook Ios Sdk,Facebook SDK文档表明此SDK将在iOS 4.0及更高版本上运行。然后我在iPhone3GS iOS4.0设备上测试了他们的Scrumptions示例。但这个应用程序似乎不起作用。虽然我登录了,但它一直显示登录屏幕 然后我调试并注意到FBSessionState总是返回FBSessionStateClosedLoginFailed。 它从不返回FBSessionStateOpen 原因可能是什么?然而,当我在iOS5.1模拟器中运行它时,它工作得很好。是因为SDK不支持iOS 4.0还

Facebook SDK文档表明此SDK将在iOS 4.0及更高版本上运行。然后我在iPhone3GS iOS4.0设备上测试了他们的Scrumptions示例。但这个应用程序似乎不起作用。虽然我登录了,但它一直显示登录屏幕

然后我调试并注意到
FBSessionState
总是返回
FBSessionStateClosedLoginFailed
。 它从不返回
FBSessionStateOpen

原因可能是什么?然而,当我在iOS5.1模拟器中运行它时,它工作得很好。是因为SDK不支持iOS 4.0还是其他问题

你们都申报了吗

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

?

第一种是iOS 4.2及更高版本,因此如果您的设备运行的是4.2之前的版本,则将使用第二种方法。

您是否同时声明了这两种方法

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

?


第一种是iOS 4.2及更高版本,因此,如果您的设备运行的是4.2之前的版本,则将使用第二种方法。

正如saulobrito所述。我自己也遇到了这个问题,通过在app委托中实现这个方法解决了这个问题

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [FBSession.activeSession handleOpenURL:url]; ;
}

您不必像saulobrito所说的那样实现handleOpenURL。我自己也遇到了这个问题,通过在app委托中实现这个方法解决了这个问题

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [FBSession.activeSession handleOpenURL:url]; ;
}
您不必实现handleOpenURL