gpt4 book ai didi

ios - Facebook 应用程序邀请委托(delegate)混合

转载 作者:行者123 更新时间:2023-11-29 11:05:15 25 4
gpt4 key购买 nike

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

我已经创建了一个类来包装我与公开发送邀请方法的 Facebook SDK 的通信。

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

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

documentation 中所述.

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

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

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

最佳答案

这似乎是一个悬而未决的问题 reported几个times .事实上,当用户按下取消按钮时调用 didComplete 确实是一个有效的操作,因此 didComplete 被调用是设计使然。文档可能已过时,我们有修复它的任务,但在我们的开发者网站上报告文档错误将使您能够跟踪进度。

因此,为了回答您的问题,如果用户按下“x”按钮,它应该调用 didNotComplete。用户按发送或取消将调用 didComplete,因为它是这样设计的。

然而,this person came up with a good workaround对于 FBDialog,您可以在其中执行类似的操作,例如在成功时检查 URL 的值与在用户按下取消时检查 URL 并进行 if 检查以检查该情况。

希望这对您有所帮助。

关于ios - Facebook 应用程序邀请委托(delegate)混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com