在 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 并且我们需要注册回调。
下面总结了您需要做的事情 -
创建 CallbackManager
CallbackManager callbackManager = CallbackManager.Factory.create();
创建 ShareDialog
ShareDialog shareDialog = new ShareDialog(activity 或片段);
注册回调
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);
}
我正在使用 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 = new ShareDialog(activity 或片段);
注册回调
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); }