4

我正在使用 Facebook 提供的 UIWebView 和HTML5 代码向我的 iPad 应用程序添加 Facebook 评论。当用户未登录时,应用程序会显示评论和“登录 Facebook 发表评论”按钮。

评论初始窗口

单击该按钮将引导我完成登录过程。登录完成后,视图被重定向到一个带有“登录完成”消息的空页面。它不会重定向回评论对话框。

在此处输入图像描述

现在我实施了一个丑陋的解决方法。收到webViewDidFinishLoad事件后,我会查看页面内容并在页面显示此消息时重新加载。不过,这似乎不是一条干净的路。

为什么 Facebook 不将我重定向回原始评论页面?

4

3 回答 3

1

我怀疑您遇到的问题与此问题有关:UIWebView 中的 Facebook 身份验证不会重定向回我网站上要求身份验证的原始页面

具体来说,标准的 Facebook Web 登录过程会启动一个新的浏览器窗口对话框,并向打开者发送一条消息,以指示登录成功以进行重定向。

引用链接 SO 中的一段话,“UIWebView 不支持多个窗口,因此它无法将消息发布回您的原始页面,因为它不再加载。”

于 2012-10-29T19:41:32.390 回答
0

我也在开发一个 iPad 应用程序,我的解决方案与你的类似:我总是将用户带到“https://m.facebook.com”,强制他先登录,然后在“webViewDidFinishLoad”中检查返回的 url 以及是否匹配:

“https://m.facebook.com/login/checkpoint/”

确切地说,就是成功登录后返回的 url,然后我调用我自己的方法(使用 reload 或任何我想要的方法)。此时,用户已通过身份验证并具有有效的 FB 会话,因此不再需要重定向。

它绝对不漂亮,而且一旦 FB 改变了它处理登录对话框的方式,它可能会中断,但我也找不到更好的方法来解决它。甚至尝试使用“FB.Event.subscribe('auth.login', function(response) {});” 当然,没有成功,因为代码永远无法到达。

我认为一个错误已经提交给 FB,但我认为它没有得到应有的关注......

于 2012-11-28T00:05:30.717 回答
0

我遇到了与这个问题相同的问题,但在阅读了一些Facebook 官方文档后,我将重新设计以使用 Facebook 原生 SDK。

所有 iOS 和 Android 应用程序必须(2013 年 10 月 2 日生效)使用我们的 iOS 和 Android SDK 来请求权限。

不过,我还认为“否则”只是“开发人员通知”?

发布此内容是希望它可以为使用相同方法的人节省时间:)

于 2013-07-10T05:44:29.450 回答