Facebook app邀请代表团混淆

时间:2012-12-18 14:12:41

标签: ios facebook facebook-app-requests

我正在从我的iOS应用程序发送Facebook应用程序邀请,并且正在尝试使用块实现成功/失败流程。

我创建了一个类来包装我与Facebook SDK的通信,它暴露了一个发送邀请方法。

在该方法中,我有以下代码:

[self.facebook dialog:@"apprequests"
            andParams:params
          andDelegate:self];

documentation中所述。

我的包装类符合FBDialogDelegate协议,我已经实现了5个委托方法:

dialog:(FBDialog *)dialog didFailWithError:(NSError *)error, 
dialogCompleteWithUrl:(NSURL *)url, 
dialogDidComplete:(FBDialog *)dialog, 
dialogDidNotCompleteWithUrl:(NSURL *)url 
dialogDidNotComplete:(FBDialog *)dialog

问题是,当用户取消对话框或发送请求时,唯一被调用的方法是dialogCompleteWithUrl:(NSURL *)url方法。 有谁能解释一下?

1 个答案:

答案 0 :(得分:2)

这似乎是reported几个times的一个突出问题。当用户按下取消按钮时调用didComplete的事实确实是一个有效的动作,因此设计中调用了didComplete。文档可能已过时,我们有一项任务要修复它,但在我们的开发人员站点上报告doc bug将允许您跟踪进度。

所以要回答你的问题,如果用户按下' x'按钮应该调用didNotComplete。用户按发送或取消将调用didComplete,因为它是这样设计的。

但是,对于FBDialog,this person came up with a good workaround你可以做类似的事情,比如在成功时检查URL的值与用户按下取消时的值,并检查是否检查该情况。

希望这有帮助。