我正在开发iOS应用并切换到新的Facebook iOS SDK 3.5.1。
在iOS 6上,使用系统内的Facebook集成,我的应用程序中用户的登录过程按预期工作,在用户授予权限后调用完成处理程序块。
问题是不使用此集成时,无论是否安装了Facebook应用程序。
当我调用“openActiveSessionWithReadPermissions”时,立即使用FBSessionStateClosedLoginFailed状态调用完成处理程序块,然后用户授予应用程序权限,当他返回应用程序时,永远不会再次调用完成处理程序,因此我不会收到通知用户登录。
我尝试过很多更改,从我的facebook用户允许的应用列表中删除应用,从设备上卸载应用等等......但我不知道那里发生了什么......
任何帮助都非常感谢!
感谢社区
答案 0 :(得分:1)
发现修复!在同样的情况下,这是其他的。
我没有正确处理切换回我的应用程序,这就是为什么只在使用快速应用程序切换(使用Safari或Facebook应用程序)时才会发生错误。从技术上讲,我应该在应用程序委托中实现以下两个方法:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[FBSession.activeSession handleDidBecomeActive];
}
和
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [FBSession.activeSession handleOpenURL:url];
}