PFLoginViewController didLogin 在使用 Facebook 登录时从未调用过
Posted
技术标签:
【中文标题】PFLoginViewController didLogin 在使用 Facebook 登录时从未调用过【英文标题】:PFLoginViewController didLogin never called when logging in with Facebook 【发布时间】:2014-10-30 18:55:28 【问题描述】:我遇到了与here 讨论过的相同问题。最终找到的解决方案是破坏 plist 文件中的 URL 方案,以便在登录 Facebook 时,您永远不会离开应用程序去 Safari,而是通过应用程序内的 Web 视图登录。但是,这似乎相当不方便,因为它不像 Safari 那样保存用户凭据。
为什么 PFLoginViewController didLogin 在 facebook 在 webview 中加载时被调用,但在 facebook 在 safari 中加载时没有被调用,我该如何解决这个问题。不仅没有调用它,而且没有创建用户,因为 [PFUser currentUser] 在使用 safari 加载 facebook 后返回 nil。
【问题讨论】:
我仍然从我发布的原始线程中遇到这个问题。我将在接下来的几天内重新审视它。我将更深入地研究这个问题。我一定会告诉你我发现了什么! 如果我也想出什么办法,我会告诉你的,但目前我要休息一下。祝你好运! 那么你的问题是什么? 我已更新我的帖子以包含一个实际问题。 我现在正在处理这个问题,我了解到的唯一一件我之前没有注意到的事情是:如果你去设置 > 隐私 > Facebook > 应用程序应该会出现在这里,如果它是请求访问 Facebook。我的应用没有显示在此屏幕上,因此它没有请求访问权限。 【参考方案1】:这很糟糕,但实际上很容易解决。我回顾了我的步骤,并意识到我不小心删除了我的回调方法。他们在这里:
// Facebook oauth callback
- (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 [FBAppCall handleOpenURL:url sourceApplication:sourceApplication withSession:[PFFacebookUtils session]];
- (void)applicationDidBecomeActive:(UIApplication *)application
[FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]];
试一试,如果这能解决您的问题,请告诉我。我不是 100% 确定这是否是这样做的方法,因为我有一个旧的不推荐使用的例子来查看。这是旧的不推荐使用的方法:
// Facebook oauth callback
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
return [PFFacebookUtils handleOpenURL:url];
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
return [PFFacebookUtils handleOpenURL:url];
- (void)applicationDidBecomeActive:(UIApplication *)application
// Handle an interruption during the authorization flow, such as the user clicking the home button.
[FBSession.activeSession handleDidBecomeActive];
【讨论】:
我已经实现了两种方法,但方式不同。不过,使用您发布的前 3 个回调可以解决问题。谢谢!以上是关于PFLoginViewController didLogin 在使用 Facebook 登录时从未调用过的主要内容,如果未能解决你的问题,请参考以下文章
PFLogInViewController 错误-使用 Parse 注销后无法登录 Facebook
“使用未声明的标识符‘PFLoginViewController’?--解析导入
无法修改 PFLogInViewController logInButton 标题
解析 iOS SDK PFLoginViewController Facebook Segue