如何检测 Facebook 喜欢的按钮被点击?

Posted

技术标签:

【中文标题】如何检测 Facebook 喜欢的按钮被点击?【英文标题】:How to detect Facebook like button being clicked? 【发布时间】:2015-02-15 19:43:46 【问题描述】:

我已经使用以下代码实现了一个 Facebook 按钮:

FBLikeControl *like = [[FBLikeControl alloc] init];
like.objectID = @"1031992973496678";
[like setFrame:CGRectMake(0, 20, 100, 100)];
[[self view] addSubview:like];

我想让按钮在按下时消失,使用以下代码:

[like removeFromSuperview];

如何检测点赞按钮何时被按下?

编辑:我目前正在使用此代码来检测何时按下赞按钮,但 NSLogs 和赞按钮的存在表明选择器未被使用:

[like addTarget:self action:@selector(likePressed:) forControlEvents:UIControlEventValueChanged];
[[self view] addSubview:like];



- (void) likePressed:(id)sender 
NSLog(@"GG, like was pressed!");
[sender removeFromSuperview];
[likeText removeFromSuperview];

我尝试用[like removeFromSuperview]; 替换[sender removeFromSuperview];,但无济于事。

【问题讨论】:

【参考方案1】:

在此处查看FBLikeControl 的文档:https://developers.facebook.com/docs/reference/ios/current/class/FBLikeControl

看起来FBLikeControl 继承自UIControl 并通过UIControlEventValueChanged 事件发送信息。尝试为此事件添加监听器,然后删除视图:

[likeControl addTarget:self action:@selector(likePressed:) forControlEvents:UIControlEventValueChanged];

// ... then later

-(void)likePressed:(id)sender 

    [sender removeFromSuperview];    


【讨论】:

我已经这样做了,但是likePressed中的代码没有运行,根据NSLogs和like按钮没有消失。 我在原始帖子中添加了一个编辑,其中包含我当前用来尝试检测按下的点赞按钮的代码。 另一个人填补了缺失的部分。谢谢! :) 有趣的是 Facebook 的文档是错误的。很高兴你知道了:)【参考方案2】:

尝试将 UIControlEventValueChanged 更改为 UIControlEventTouchUpInside

【讨论】:

以上是关于如何检测 Facebook 喜欢的按钮被点击?的主要内容,如果未能解决你的问题,请参考以下文章

喜欢 Facebook 页面按钮

Facebook:当用户点击粉丝页面上的“喜欢”按钮时获取

Facebook 喜欢按钮错误 - 被阻止的框架

自定义简单的like按钮(不是facebook)

如何检查用户是不是已经喜欢 Facebook 页面?

Facebook Like 按钮确认页面显示“未找到您请求的页面”