我使用的是facebook android sdk版本4.25和sharelinkcontent,shareddialog,代表用户使用我的应用发布到facebook。
这是当用户单击我的应用的共享功能时打开的对话框
android - 使用Facebook android SDK ShareDialog。单击sharedialog的十字按钮,使用onSuccess回调返回到应用程序-LMLPHP
如图所示,ShareDialog中有两个十字图标。当我单击上十字图标时,sharedialog关闭,并调用oncancel回调。
问题是,当我单击下十字图标时,当我单击post按钮时,success callback被调用。当用户在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");

    }

});

最佳答案

当你点击上面的十字,你实际上是关闭你自己的对话框,调用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.
}

关于android - 使用Facebook android SDK ShareDialog。单击sharedialog的十字按钮,使用onSuccess回调返回到应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46341617/

10-12 07:13