我刚刚切换到Facebook ios sdk 3.5并尝试使用
验证用户身份[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
//callback methods
}];
我在info.plist文件中设置了FacebookAppID,FacebookDisplayName,CFBundleURLSchemes。 在AppDelegate中,我有以下功能设置:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [FBSession.activeSession handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL wasHandled = [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication];
// add app-specific handling code here
return wasHandled;
}
现在,当我在iPhone上登录facebook帐户时,它可以调用回调块,我认为它是用于FBAppCall的新路由。
但问题是,当我没有设置我的iPhone FB帐户时,应用程序尝试使用safari Web视图或FB应用程序进行身份验证,然后在safari或应用程序上按下允许访问按钮后,我的应用程序被调用并且它显示了Launch图像,但它只是挂在那里,并且永远不会调用回调块。我认为这是一个不同的应用程序处理openurls的路线,但我不确定,因为我是否在
中设置了一个断点- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
它永远不会在断点处停止。