gpt4 book ai didi

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

转载 作者:技术小花猫 更新时间:2023-10-29 11:07:40 30 4
gpt4 key购买 nike

第二次更新在进行更多挖掘之后,似乎有一个更大的问题在起作用。

未触发 openURL 的原因是应用程序在返回前台时似乎卡住了。

如果我启动我的应用程序,单击主页按钮(返回主屏幕),然后重新加载我的应用程序(不是完全重新启动,而是只是恢复),应用程序打开,但一切都被卡住。

-(void)applicationWillEnterForeground:(UIApplication *)application

在应用程序返回时被触发,但是之后什么也没有发生。使用 IOS 6.0 的模拟器我完全没有崩溃,但应用程序只是坐在那里什么都不做。点击屏幕什么都不做。如果我点击主屏幕,我可以返回主屏幕。

所以 openIURL 未被触发的原因是因为应用程序在从 Safari 或 Facebook 应用程序从 Facebook 登录返回时卡住。它与 facebook SDK 无关。

为什么会这样?

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

另一个相关问题 application open Url method not called after user authenticates the facebook

我有一个使用 facebook SDK 3.0 登录 facebook 的应用。

在 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];

在我的应用委托(delegate)中,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];
}

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

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

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

FacebookAppID = (My Facebook App ID)

URL types 
-> Item 0
-> URL Schemes
-> Item 0 = (My Facebook App ID)

最佳答案

这可能是因为您的应用程序设置为不在后台运行,如您的应用程序列表中所设置的那样?我一直有同样的问题。看起来,如果应用程序在后台运行,它将返回并调用 openURL。但是,如果应用程序不在后台运行,它将返回并调用 application:didFinishLaunchingWithOptions 而不是调用 openURL。可以从启动选项中获取 url:

NSURL *url = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey];

但我还没有想出如何调用它,以便它在从 Facebook 身份验证返回时具有与 application:openURL 相同的效果。希望这对一些人有所帮助。

关于ios - Facebook SDK 3.0 IOS 6 登录后回调未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497465/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com