按钮操作登录按钮单击FBConnect API

时间:2011-06-02 11:47:50

标签: iphone objective-c ios fbconnect

我在我的项目中使用fbconnect api。当登录对话框打开我们输入凭据的位置时,当我点击登录按钮时会执行某些操作并将其重定向到发布页面。 我的问题是我没有得到对该登录按钮执行的操作,因此我可以在那里放置一个指示器。

我附上了一个截图,指明了我正在谈论的按钮。 enter image description here

任何建议都将受到高度赞赏!

2 个答案:

答案 0 :(得分:4)

  

你想偷别人的Facebook密码吗? :)

似乎FBConnect使用UIWebView从网页加载网页。这些表单元素不是从代码创建的。因此,您无法访问这些方法/操作。


使用 UIWebViewDelegate 跟踪登录按钮操作

webView:shouldStartLoadWithRequest:navigationType:中的FBDialog.m委托方法中,您可以看到从登录视图发送的请求。

您可以使用URL阅读[request.URL absoluteString]。 检查 URL 是否包含字符串https://www.facebook.com/login.php?m=m。如果是 YES ,则可能正在发送登录请求。你可以在那里做你的行动。

注意:我不确定这总是有效。您可以进一步研究以找到更好的解决方案。

答案 1 :(得分:1)

当您按下登录按钮时 - 登录请求将仅发送到FB服务器。要获得答案,您需要实现FBSessionDelegate协议:

/**
 * Called when the user successfully logged in.
 */
- (void)fbDidLogin;

/**
 * Called when the user dismissed the dialog without logging in.
 */
- (void)fbDidNotLogin:(BOOL)cancelled;

/**
 * Called when the user logged out.
 */
- (void)fbDidLogout;

另请阅读Facebook.m中的评论:

  • 启动一个对话框,提示用户登录Facebook并授予
  • 对应用程序的请求权限。 *
  • 如果设备支持多任务处理,我们会使用快速应用切换功能来显示
  • Facebook应用中的对话框,或者,如果未安装Facebook应用,
  • 在Safari中
  • (这允许通过允许多个应用程序进行单点登录
  • 共享同一用户会话的设备。)
  • 当用户授予或拒绝权限时,应用
  • 显示对话框(Facebook应用程序或Safari)重定向回
  • 调用应用程序,在URL中传入访问令牌
  • 和/或Facebook后端包含的任何其他参数
  • 结果(例如发生错误时的错误代码)。