使用 Facebook android sdk 版本 4.1.1,我设法打开一个 shareDialog 并使用以下代码共享内容:
if (ShareDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("Hello Facebook")
.setContentDescription(
"The 'Hello Facebook' sample showcases simple Facebook integration")
.setContentUrl(Uri.parse("http://developers.facebook.com/android"))
.build();
shareDialog.show(linkContent);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Result result) {
//always gets called
}
@Override
public void onCancel() {
//do something
}
@Override
public void onError(FacebookException error) {
// TODO Auto-generated method stub
}
});
}
和 ActivityResult 代码的回调:
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
无论用户是否按下对话框的后退 或发布 按钮,resultCode 始终为 -1,即 RESULT_OK。并且回调的 onSuccess 函数总是被调用,无论内容是发布还是取消,postId 总是 null。有谁知道为什么会这样?
最佳答案
根据 THIS这是 Facebook 开发人员错误部分上报告的错误,这是已知的,根据给出的答案,似乎在设计中任何形式的关闭对话框都被视为成功。
关于java - facebook android sdk shareddialog回调总是成功的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155059/