使用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。任何人都知道为什么这样做?
答案 0 :(得分:2)
根据THIS,这是facebook开发人员bug部分报告的错误,这是众所周知的,根据给出的答案,似乎在设计中任何形式的关闭对话都被视为成功。< / p>
答案 1 :(得分:0)
我正在使用SDK 7.1.0,这似乎不再是问题。本地对话框和Web共享对话框都在调用正确的回调方法。