使用Facebook android SDK ShareDialog。单击sharedialog的交叉按钮,使用onSuccess回调返回应用程序

时间:2017-09-21 10:32:21

标签: android facebook-sdk-4.x

我使用Facebook Android SDK版本4.25和ShareLinkContent,ShareDialog代表用户使用我的应用程序发布到Facebook。

这是用户点击我应用的共享功能时打开的对话框

enter image description here

您可以在图片中看到,在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");

    }

});

1 个答案:

答案 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.
}