При использовании флеш-памяти Android sdk для открытия диалоговых окон все работает хорошо.Диалоговое окно Facebook и кнопка «Назад»
Однако, если пользователь нажимает кнопку «Назад», диалоговое окно действительно закрывается, но метод вызывающего диалога (или любого другого метода) не вызывает метод onCancel.
Я искал об этом вопросе и нашел этот запрос на тягу от sbk android sdk на github: Calls Cancel on DialogListener when Dialog is Cancelled.
Я взял одну часть и модифицировать его немного, чтобы получить это:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
mWebView.stopLoading();
dismiss();
mListener.onCancel();
return true;
}
return true;
}
и я добавил его к класса FbDialog, и на самом деле это, кажется, сделать трюк.
Что я задаюсь вопросом, почему это не является частью sdk? Этот запрос на тяга более года, и последний ответ составляет около 11 месяцев. Почему бы не добавить его в источник sdk?
Поскольку это решение работает, оно не является срочным, но мне не нравится изменять источник facebook sdk, поскольку это может быть проблематично позже (если/когда они обновляются).
Любые идеи?
Спасибо за ответ. Честно говоря, я не проверял эту проблему через некоторое время, но почему вы предлагаете использовать «Facebook.FORCE_DIALOG_AUTH»? Использование «SSO» является предпочтительным для лучшего удобства пользователей. –
Если я правильно помню, основной причиной этого было то, что Non-SSO использует более приятное диалоговое окно для всплывания, чтобы отобразить панель проверки подлинности, когда панель SSO слайд справа (и обратно вправо после завершения пользователем). Кажется, что нет возможности изменить этот интерфейс, по крайней мере, без взлома кода SDK. – repto
Другая причина заключалась в том, что одним из требований приложения является не использование установленных клиентов Facebook. – repto