Отображение окна предупреждения после публикации в Facebook SDK

Я использую Facebook Android SDK 4.+, чтобы делиться фотографиями одним нажатием кнопки в моем приложении.

Когда пользователь нажимает кнопку, он открывает страницу с фотографиями на Facebook. После публикации фотографии я хочу показать окно оповещения, в котором говорится, что эта фотография успешно опубликована.

я использовал это

SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(bitmap)
            .build();
    SharePhotoContent content = new SharePhotoContent.Builder()
            .addPhoto(photo)
            .setShareHashtag(new ShareHashtag.Builder()
                    .setHashtag(hastag).build())
            .build();

    ShareDialog.show(SellingActivity.this,content);

Помещение окна предупреждения после sharedialog.show не сработало. В конечном итоге он будет отображаться после нажатия кнопки, после чего появится страница с фотографиями на Facebook.


person BrenDonie    schedule 15.03.2018    source источник
comment
Добавьте обратный вызов в ShareDialog и покажите AlerrtDialog в случае успеха. Посмотрите это обсуждение.   -  person ADM    schedule 15.03.2018


Ответы (1)


Если вы используете этот метод обмена ShareDialog.show(SellingActivity.this,content);, обратного вызова не будет. Посмотрите там документацию -

/**
 * Helper to show the provided {@link com.facebook.share.model.ShareContent} using the provided
 * Fragment. No callback will be invoked.
 *
 * @param fragment android.support.v4.app.Fragment to use to share the provided content
 * @param shareContent Content to share
 */
public static void show(
        final Fragment fragment,
        final ShareContent shareContent) {
    show(new FragmentWrapper(fragment), shareContent);
}

Если вам нужен обратный вызов, нам нужно использовать CallbackManager, и нам нужно зарегистрироваться для обратного вызова.

Вкратце ниже показано, что вам нужно сделать:

  1. Создать CallbackManager

    CallbackManager callbackManager = CallbackManager.Factory.create();

  2. Создать общий диалог

    ShareDialog shareDialog = новый ShareDialog (активность или фрагмент);

  3. Зарегистрируйтесь для обратного вызова

shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {

            }

            @Override
            public void onCancel() {

            }

            @Override
            public void onError(FacebookException error) {

            }
        });
  1. Переопределить onActivityResult

@Override public void onActivityResult(int requestCode, int resultCode, Intent data { super.onActivityResult(requestCode,resultCode, data); callbackManager.onActivityResult(requestCode,resultCode, data);}


person Nagesh Jatagond    schedule 15.03.2018
comment
Я использую onActivityResult для использования камеры... как различать их, чтобы не было конфликта? - person BrenDonie; 19.03.2018
comment
requestCode поможет вам. - person Nagesh Jatagond; 19.03.2018