几个小时以来,我一直在尝试通过 facebook 4.0.0 sdk 分享我的 android 应用程序中的内容。我完全按照Facebook 分享文档 https://developers.facebook.com/docs/sharing/android#share_dialog但没有结果。当我按共享按钮时,共享对话框打开,但其中没有内容。如果我单击“确定”,它只会共享一个空字符串。请告诉我一种解决此问题的方法。
Edit
顺便说一句,当我从手机中删除 Facebook 本机应用程序时,我可以与 facebook 的 webview 共享。
CallbackManager callbackManager;
ShareDialog shareDialog;
private View rootView;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
FacebookSdk.sdkInitialize(activity);
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(activity);
rootView = inflater.inflate(R.layout.fragment_events, container, false);
shareDialog.registerCallback(callbackManager, shareCallBack);
lbtnShare = (LinearLayout) rootView.findViewById(R.id.lbtn_shareOnFb);
lbtnShare.setOnClickListener(this);
init(rootView);
return rootView;
}
public FacebookCallback<Sharer.Result> shareCallBack = new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Result result) {
showToast(message(R.string.title_fbShare)).show();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
showToast(message(R.string.msgerr_shareOnFB) + " -- " + error.getMessage()).show();
}
};
public void onClick(View v) {
switch (v.getId()) {
case R.id.lbtn_shareOnFb:
shareOnFB();
break;
default:
break;
}
}
private void shareOnFB(){
if (ShareDialog.canShow(ShareLinkContent.class)) {
String eventUrl = "http://www.mypage.com?id=" + event.getId();
eventUrl = eventUrl.replaceAll(" ", "-");
ShareLinkContent adShareContent = new ShareLinkContent.Builder()
.setContentTitle(event.getTitle())
.setContentDescription(message(R.string.fbshareDesc))
.setContentUrl(Uri.parse(eventUrl))
.setImageUrl(Uri.parse(event.getImages().get(0).getName())).build();
shareDialog.show(adShareContent);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
您需要使用您所在的片段(而不是活动)创建 ShareDialog。 onActivityResult 在写入时返回到活动,因此它不会到达回调管理器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)