iOS 应用中的赞按钮和 Facebook 单点登录

9

有没有办法在UIWebView中结合使用FB单点登录和“喜欢”按钮的登录流程?

我有一个应用程序,它使用UIWebView显示网页,在该页面中有一个FB“喜欢”按钮。我已经按照帖子中提出的建议使该按钮正常工作。

iOS应用程序中的喜欢按钮

但是登录对话框看起来不太好,如果我可以使用SSO流程那就太棒了。但是我还没有成功实现这一点。是否有人尝试过这个?


你解决这个问题了吗? - Piotr
5个回答

2

我实际上修改了Facebook的源代码,始终使用Safari进行身份验证,而不是单点登录。这使我能够在UIWebViews中创建我的“喜欢”按钮(或“喜欢框”)。


2
好的。你能告诉我们你是在哪里/如何修改FB SDK的吗? - genkilabs
你可以在Github上fork源代码:https://github.com/Thuzi/iOS-Facebook-Authentication。它内置了“赞”按钮的示例。 - Joey Schluchter

2

Facebook API 实际上首先检查您的 ios 设备是否支持多任务处理。 如果不支持,则使用弹出式对话框。 如果设备支持,则尝试使用 Facebook 应用程序(如果当然已安装在设备上),然后是 Safari,最后才回退到弹出式对话框。 注意使用相同的 Facebook 对象,否则每个操作都需要登录...


1

不可能使用Web组件(如UIWebView或外部Safari)和本地代码(如您所提到的UIButton)以SSO方式相互通信。

1)FB存储登录cookie以进行授权。

2)每个Web组件(例如UIWebView或外部Safari)都使用其自己的沙盒式cookie存储。我发现(并且我强烈相信)它们之间没有实现相互通信的方法。

3)本地代码使用AccessToken,该令牌存储在每个应用程序的沙盒中,以便在外部FB API调用(如授权、图形调用等)中使用。

4)如果您找到其他方法,请告诉我;)


0

非常抱歉,这篇文章解释了您可以喜欢几乎所有东西,但不能在Facebook上喜欢页面:https://dev59.com/OFbUa4cB1Zd3GeqPBLVA - Oded Ben Dov
1
在发布复制粘贴的样板/逐字回答多个问题时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,通常意味着这些问题是重复的,请将它们标记为重复。 - Kev

0

您可以拦截您的“喜欢”按钮的操作。

只需将您的“喜欢”按钮设置为链接到http://mydomain.com/doLikeStuff

在UIWebView中,检查 webView:shouldStartLoadWithRequest:navigationType:

是否有/doLikeStuff链接,返回NO(这样Web视图实际上不会执行任何操作),并实现您的自定义流程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接