2
나는 facebook SDK 3.21.1을 통합하고 있습니다. 모든 것이 잘 진행되고 있지만 문제는 하나뿐입니다. 공유 버튼을 클릭하면 뭔가 게시하기위한 대화 상자 (FacebookDialog.ShareDialogBuilder의 경우)가 표시됩니다. 뒤로 버튼을 누르면 com.facebook.widget.WebDialog.OnCompleteListener의 onCompleteMethod가 호출되고 이벤트를 가져올 수 없습니다. 성공적으로 게시되었거나 다시 버튼이 눌려집니다. 정확한 토스트 메시지를 사용자에게 보여주고 싶습니다. 안드로이드 응용 프로그램과 페이스 북 통합
이
내 코드입니다 : -/**
* Handle Facebook Sharing
*
* Take Decision for sharing approach.
*/
private void handleFacebookSharing()
{
//Show Hash Key
showHashKey(this);
//Can Present Share Dialog(Facebook Application is installed or not)
boolean canPresentShareDialog = FacebookDialog.canPresentShareDialog(getApplicationContext(), FacebookDialog.ShareDialogFeature.SHARE_DIALOG);
if (canPresentShareDialog)
{
//Publish the Post Using the Share Dialog
FacebookDialog.ShareDialogBuilder shareDialogBuilder = new FacebookDialog.ShareDialogBuilder(ShareActivity.this);
//Set Link
shareDialogBuilder.setLink(ShareActivity.this.getString(R.string.share_link));
//Set Caption
shareDialogBuilder.setCaption(getString(R.string.share_caption));
//Set Description
shareDialogBuilder.setDescription(getString(R.string.share_description));
//Get Facebook Dialog
FacebookDialog facebookDialog = shareDialogBuilder.build();
//Track Pending Dialog Call
uiHelper.trackPendingDialogCall(facebookDialog.present());
}
else
{
if(activeSession == null || !activeSession.isOpened())
{
//Open Active Session
activeSession = Session.openActiveSession(this, true, statusCallback);
}
else
{
//Show Web Dialog
showWebDialog();
}
}
}
그리고 onActivityResult를 방법 : -
uiHelper.onActivityResult(requestCode, resultCode, intent, new FacebookDialog.Callback()
{
@Override
public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data)
{
//Show Toast
UIUtil.showToast(R.string.toast_message_share_error_posting);
}
@Override
public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data)
{
//Show Toast
UIUtil.showToast(R.string.toast_message_share_success_post);
}
});