【发布时间】:2015-09-27 15:19:04
【问题描述】:
我正在使用适用于 iOS 的 Facebook SDK 实现共享对话框。 一切正常,除了回调。 这是显示对话框的函数:
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = <my content url>;
content.contentTitle = <my title>;
content.contentDescription = my description;
content.imageURL = <my image url>;
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:self];
视图控制器实现了 FBSDKSharingDelegate 和三个必需的方法:
- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results;
- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error;
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer;
基本上,我必须检测用户是否按下了取消按钮,因为只有当他们有效地分享内容时,我才会给他们奖励。 问题是即使我按下取消按钮,调用的唯一回调是:
- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results;
而不是
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer;
正如预期的那样。此外,在 iOS8 中,如果按下取消按钮,变量 results 为空,否则它包含 post_id,但在 iOS7 中不会发生这种情况,结果为 always 为空。
我做错了什么?我应该怎么做才能让 sharerDidCancel 回调正常工作?
感谢您的帮助!
【问题讨论】:
-
“因为我只有在他们有效分享内容的情况下才会给他们奖励” – 您不允许奖励分享的用户。请阅读Platform Policy - 4.5 说,“仅激励人们登录您的应用程序,在您的应用程序页面上输入促销信息,或在某个地方签到。不要激励其他行为。”
-
太棒了!非常感谢你,我不知道。无论如何,现在问题仍然存在。知道如何解决吗?
-
@Prem,我也面临同样的问题。你有什么解决办法吗?
-
不。它实际上只适用于 iPhone 6 或更高版本。我找不到让它在 iPhone 5s / 5 / 4s 等设备上运行的方法......
-
如果使用FBSDKShareDialog显示模式为FBSDKShareDialogModeWeb,可以解决这个问题,希望对您有所帮助。