Ioni c 4: сбой входа в Facebook с android при установленном родном приложении facebook - PullRequest
0 голосов
/ 11 марта 2020

Я работаю в приложении с использованием Ioni c 4. Одним из требований является то, что пользователь может войти в систему с помощью Facebook. Я следую этому уроку: https://www.djamware.com/post/5d949fa24ca99c5ee51238ef/ionic-4-tutorial-facebook-login-example, Facebook и работает почти идеально.

Я использую это приложение: https://github.com/jeduan/cordova-plugin-facebook4

При тестировании приложения я обнаружил, что вход в систему завершается неудачно, когда на устройстве установлено собственное приложение Facebook android.

Я повторил эксперимент на трех разных устройствах.

Здесь это процесс, когда приложение Facebook не установлено на устройстве:

enter image description here

Затем, когда я нажимаю кнопку входа в Facebook, Facebook окно входа в систему выглядит идеально:

enter image description here

Теперь , когда я пытался сделать то же самое, когда приложение facebook установлено на устройстве происходит следующее:

enter image description here

Я нажимаю на кнопку входа в Facebook

enter image description here

Появится окно входа в приложение facebook, и я вошел в приложение facebook.

enter image description here

Но это ошибка показывает:"При входе в это приложение произошла ошибка. Пожалуйста, попробуйте позже "

Я удалил приложение facebook, и логин работает снова.

Это мой логин код функции Facebook:

    fbLogin() {
this.platform.ready().then(() => {

      if (this.platform.is('android')) {

  this.fb.login(['public_profile', 'user_friends', 'email'])
    .then(res => {
      if (res.status === 'connected') {
        this.isLoggedIn = true;
        this.getUserDetail(res.authResponse.userID);
        this.router.navigateByUrl("/tutorial");
      } else {
        this.isLoggedIn = false;
      }
    })
    .catch(e => console.log('Error logging into Facebook', e));
    }
});
}

Я нашел это аналогичное приложение с другим плагином входа в Facebook для реакции: https://github.com/facebook/react-native-fbsdk/issues/633

Их «обходной путь» заключался в том, чтобы заставить приложение вызывать обычное окно входа в Facebook, например:

if (Platform.OS === "android") {
            LoginManager.setLoginBehavior("web_only")
        }

Есть ли подобный «обходной путь» или способ заставить использовать окно входа в Facebook без вызова приложения facebook?

Спасибо.

1 Ответ

0 голосов
/ 12 марта 2020

Я не знаю, правильно ли я сделал, не знаю, правильно ли я сделал, но я хотел поставить запись.

Я проверяю файлы плагинов. В частности, я изучил один файл: ConnectPlugin. java

Из того, что я вижу на других форумах, я сделал следующее:

Я добавил эту библиотеку

import com.facebook.login.LoginBehavior;

И любая строка, в которой была указана следующая команда:

LoginManager.getInstance().logInWithReadPermissions(cordova.getActivity(), permissions);

В строке перед тем, как я добавил это:

  // Create the request
            LoginManager.getInstance().setLoginBehavior(LoginBehavior.WEB_ONLY);
            LoginManager.getInstance().logInWithReadPermissions(cordova.getActivity(), permissions);

И работал отлично. Теперь я могу войти в систему, когда установлен добавленный Facebook.

Я знаю, что это обходной путь.

Привет.

...