小编Her*_*ill的帖子

登录后未调用Facebook SDK 3.0 IOS 6回调

第二次更新 在进行了一些挖掘后,似乎存在更大的问题.

openURL未被触发的原因是应用程序在返回前台时似乎冻结了.

如果我启动我的应用程序,单击主页按钮(返回主屏幕),然后重新加载我的应用程序(不是完全重新启动但只是恢复),应用程序打开,但所有内容都被冻结.

- (void)applicationWillEnterForeground:(UIApplication*)应用程序

应用程序恢复时会被触发,但之后没有任何反应.使用IOS 6.0的模拟器我根本没有崩溃,但应用程序只是坐在那里什么都不做.点击屏幕什么都不做.如果我点击主屏幕,我可以返回主屏幕.

因此openIURL未被解雇的原因是因为该应用程序在从Facebook登录时从Safari或Facebook应用程序返回时冻结.它与facebook SDK无关.

为什么会这样?

更新似乎问题与未调用openURL有关.当从safari或facebook app执行自定义URL时,应用程序会打开.如果我创建一个全新的应用程序它确实有效.

用户验证facebook后未调用的另一个相关问题应用程序打开Url方法

我有一个使用facebook登录facebook facebook 3.0的应用程序.

在IOS 5下,流程按预期工作,我确实看到了IS LOGGED IN的输出:

NSArray *permissions = [[NSArray alloc] initWithObjects: @"publish_stream",@"offline_access",@"email",nil];

[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:YES
completionHandler:^(FBSession *session,
                    FBSessionState status,
                    NSError *error) {
    if(session.isOpen){
      NSLog(@"IS LOGGED IN");
    }                                  
}];

[permissions release];
Run Code Online (Sandbox Code Playgroud)

在我的App委托中,openURL函数如下

- (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
{
    return [[FBSession activeSession] handleOpenURL:url];
}
Run Code Online (Sandbox Code Playgroud)

同样,在IOS 5下,在通过facebook成功登录后调用openURL函数.

在IOS 6下,当我执行openActiveSessionWithPermission(login)时,openURL永远不会被回调.

我根据facebook文档在我的.plist文件中提供了必要的信息 …

facebook openurl ios ios6

10
推荐指数
1
解决办法
4974
查看次数

标签 统计

facebook ×1

ios ×1

ios6 ×1

openurl ×1