2

我刚刚切换到 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 view 或 FB 应用程序进行身份验证,然后在 safari 或应用程序上按下允许访问按钮后,我的应用程序被调用并显示启动图像,但它只是挂在那里,并且永远不会调用回调块。我认为这是处理openurls的应用程序的不同途径,但我不确定,因为我是否在

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

它永远不会在断点处停止。

4

0 回答 0