Я интегрирую facebook sdk 3.21.1, все идет хорошо, но есть только одна проблема. Когда я нажимаю на кнопку совместного доступа, он подскажет мне диалог (в случае с FacebookDialog.ShareDialogBuilder) для публикации чего-либо. Если я нажму кнопку «Назад», то onCompleteMethod из com.facebook.widget.WebDialog.OnCompleteListener вызывается, и я не могу получить событие, либо он успешно отправлен, либо нажал кнопку «Назад». Потому что я хочу показать точное тост-сообщение пользователю.Facebook Интеграция с Android-приложением
Это мой код: -
/**
* 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);
}
});