我使用Facebook Android SDK版本4.25和ShareLinkContent,ShareDialog代表用户使用我的应用程序发布到Facebook。
这是用户点击我应用的共享功能时打开的对话框
您可以在图片中看到,在sharedialog中有两个交叉图标。当我点击上方十字图标时,将关闭sharedialog并调用onCancel回调。
问题是,当我单击“发布”按钮时,单击较低的交叉图标onSuccess回调被称为相同。我想在Facebook分享帖子时给予用户一些积分。但我也在下十字图标上获得成功回调。该怎么办?谢谢。
这是我正在使用的回调代码: -
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e(LOG_TAG, "Facebook share success " + result.getPostId());
}
@Override
public void onCancel() {
Log.e(LOG_TAG, "Facebook share cancel");
}
@Override
public void onError(FacebookException error) {
Log.e(LOG_TAG, "Facebook share error");
}
});
答案 0 :(得分:1)
单击上面的十字架时,实际上是关闭了自己的对话框,调用onCancel。但是当点击下方十字架时,它实际上是在facebook视图中。所以回调是从facebook而不是你的对话框返回的。尝试:
@Override
public void onSuccess(Sharer.Result result) {
Log.e(LOG_TAG, "Facebook share success " + result.getPostId());
//Notice this post id in both, cross click and when the status is updated successfully
//So, if you don't get a valid post id returned, you can count it as a cancel.
}