在 Facebook SDK 上发帖后显示警告框

Showing alertbox after posting on Facebook SDK

我正在使用 Facebook Android SDK 4.+ 通过在我的应用程序中单击按钮来分享照片。

当用户单击该按钮时,将打开 Facebook 共享照片页面。发布照片后,我想显示提示框,告知照片已成功发布。

我一直在用这个

SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(bitmap)
            .build();
    SharePhotoContent content = new SharePhotoContent.Builder()
            .addPhoto(photo)
            .setShareHashtag(new ShareHashtag.Builder()
                    .setHashtag(hastag).build())
            .build();

    ShareDialog.show(SellingActivity.this,content);

将警告框放在 sharedialog.show 之后似乎不起作用。它会在点击按钮后结束显示,然后 facebook 分享照片页面会在之后显示。

如果您使用这种分享方式ShareDialog.show(SellingActivity.this,content);,则不会有任何回调。看看那里的文件 -

/**
 * Helper to show the provided {@link com.facebook.share.model.ShareContent} using the provided
 * Fragment. No callback will be invoked.
 *
 * @param fragment android.support.v4.app.Fragment to use to share the provided content
 * @param shareContent Content to share
 */
public static void show(
        final Fragment fragment,
        final ShareContent shareContent) {
    show(new FragmentWrapper(fragment), shareContent);
}

如果你想要回调,那么我们必须使用 CallbackManager 并且我们需要注册回调。

下面总结了您需要做的事情 -

  1. 创建 CallbackManager

    CallbackManager callbackManager = CallbackManager.Factory.create();

  2. 创建 ShareDialog

    ShareDialog shareDialog = new ShareDialog(activity 或片段);

  3. 注册回调

shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {

            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
        });
  1. 覆盖 onActivityResult

@Override public void onActivityResult(int requestCode, int resultCode, Intent data { super.onActivityResult(requestCode,resultCode, data); callbackManager.onActivityResult(requestCode,resultCode, data); }