我正在使用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,并且需要注册回调。

总结以下是您需要做的-


创建CallbackManager

CallbackManager callbackManager = CallbackManager.Factory.create();
创建ShareDialog

ShareDialog shareDialog =新的ShareDialog(活动或片段);
注册回调



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

            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
        });




覆盖onActivityResult



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

关于android - 在Facebook SDK上发布后显示警报框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49291368/

10-08 23:52