我正在使用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之后放置alertbox似乎不起作用。它会在点击按钮后显示,然后Facebook分享照片页面会显示在那之后。
答案 0 :(得分:1)
如果您使用此共享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,我们需要注册Callback。
总结以下是您需要做的事情 -
创建CallbackManager
CallbackManager callbackManager = CallbackManager.Factory.create();
创建ShareDialog
ShareDialog shareDialog = new 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) { } });
@覆盖 public void onActivityResult(int requestCode,int resultCode,Intent data { super.onActivityResult(requestCode,resultCode,data); callbackManager.onActivityResult(requestCode,resultCode,data); }