Вход в Ionic Native GooglePlus завершается неудачно без каких-либо ошибок

Я выполнил инструкции https://ionicframework.com/docs/native/google-plus/.

Я создал Android-клиент в https://console.cloud.google.com/apis/credentials/oauthclient с использованием правильного SHA-1 (повторная проверка с использованием keytool -list -printcert -jarfile <path to your apk>)

Код для входа в систему простой, как в инструкции:

this.googlePlus.login({})
.then(res => console.log(res))
.catch(err => console.error(err));

Однако он никогда не встречается ни в then, ни в catch. В консоли ошибки не отображаются.

Ионная версия 3.20.0

Кордова версия 7.1.0

Ионный родной GooglePlus 5.3.0

Телефон Android версии 5.1.1

Кордова-плагин-googleplus 5.3.0

Прошло два дня, Ionic Native Facebook работает нормально, а GooglePlus просто молча дает сбой.

Пожалуйста посоветуй.

ОБНОВЛЕНИЕ 1

Кажется, проблема с cordova-plugin-googleplus, когда я меняю GooglePlus.execute на использование

@Override
public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException {
    this.savedCallbackContext = callbackContext;
    savedCallbackContext.error(42);
    action = "abracadabra";
    ... //remains unchanged

затем я вижу в консоли Chrome 42 - это означает, что обработка ошибок не работает должным образом в плагине cordova-plugin-googleplus.


person heroin    schedule 09.05.2018    source источник
comment
Повторно проверил this.googlePlus.getSigningCertificateFingerprint - возвращает правильное значение, которое установлено в консоли Google для моего клиента Android.   -  person heroin    schedule 09.05.2018
comment
можно попробовать передать обратный вызов об ошибке .then(res => console.log(res)) сохранить catch как есть?   -  person Idrees Khan    schedule 09.05.2018
comment
Извините, я не уверен, что правильно понял. Вы имеете в виду .catch(err => console.log(err));?   -  person heroin    schedule 09.05.2018
comment
спасибо, хотя все равно не повезло   -  person heroin    schedule 09.05.2018


Ответы (8)


Наконец, первопричина и решение были найдены. Проблема возникла из-за того, что Google обновил все модули com.google.android.gms: play- *, и это затронуло все плагины Cordova служб Google.

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

В противном случае все зависимости в файлах project.properties, plugin.xml для com.google.android.gms:play-* следует заменить на более старую версию 11.8.0:

было

com.google.android.gms:play-services-auth:+

должно быть

com.google.android.gms:play-services-auth:11.8.0

Я знаю, что это лучше называть обходным путем, но никакие другие решения не работают.

Спасибо, ребята из:

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/issues/492

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/issues/484

https://github.com/EddyVerbruggen/cordova-plugin-googleplus/issues/488

ОБНОВЛЕНИЕ 08.10.2018

После последних обновлений плагин снова не работает. Проблема возникла из-за конфликта версий com.google.android.gms: play-services- :.

Например, com.google.android.gms:play-services-maps:15.0.1, используемый плагином Google Maps, и com.google.android.gms:play-services-auth:11.8.0, используемый плагином Google Plus.

Тогда решение простое:

  1. В config.xml поместите <variable name="PLAY_SERVICES_VERSION" value="15.0.1" /> (вместо 15.0.1 могла быть более новая / старая версия) для каждого плагина, который использует сервисы воспроизведения - обычно все плагины, относящиеся к сервисам Google.
  2. В platforms/android/project.properties везде используйте для игровых сервисов версию 15.0.1 (здесь должна быть версия такая же, как в пункте 1).
person heroin    schedule 12.05.2018
comment
Должно быть com.google.android.gms:play-services-auth:11.8.0. Произошла опечатка с использованием : вместо . - person sketchthat; 31.08.2018
comment
Я использовал com.google.android.gms: play-services-auth: 11.8.0, но всплывающее окно все равно не появляется. Нет ошибки. он никогда не попадает ни в то, ни в ловушку. В консоли ошибки не отображаются. Пробовал код ниже: - person Anand_5050; 13.03.2019

Спасибо, героин, за ответ. Моя проблема заключалась в следующем:

1) com.google.android.gms: play-services-tagmanager: +

2) com.google.android.gms: play-services-auth: 11.8.0

3) com.google.android.gms: play-services-identity: 11.8.0

Что я сделал, чтобы исправить это, было так, как предлагалось героином, но вместо этого я удалил 11.8.0 для 2) и 3) и просто заменил его на "+". Затем я зашел в config.xml и нашел:

имя переменной = "PLAY_SERVICES_VERSION" значение = "11.8.0"

как предлагал героин, затем заменил «11.8.0» на «+». Перекомпилировал и запустил, и теперь google plus снова работает.

person Tee Vue    schedule 05.11.2018

Я попытался изменить android / project.properties, строки с google_auth и identity на

cordova.system.library.5=com.google.android.gms:play-services-auth:+ cordova.system.library.6=com.google.android.gms:play-services-identity:+

person Brianhenry    schedule 09.08.2018
comment
Пожалуйста, объясните свой ответ, чтобы он мог стать хорошим ответом для людей, которые будут задумываться об этом в будущем. - person ochs.tobi; 09.08.2018

В моем случае происходило то же самое, и я пробовал почти 1 месяц, и, наконец, у меня сработало то, что я удалил папку с плагинами, удалил платформу Android и снова добавил ее. У меня это сработало. Надеюсь, это кому-то поможет.

person Anand_5050    schedule 30.03.2019

в platforms>android>project.properties

изменение:

cordova.system.library.6=com.google.android.gms:play-services-auth:11.8.0
cordova.system.library.7=com.google.android.gms:play-services-identity:11.8.0

to:

cordova.system.library.6=com.google.android.gms:play-services-auth:+
cordova.system.library.7=com.google.android.gms:play-services-identity:+
person Gabriel Costa    schedule 22.05.2019

В моем случае я исправил это, изменив значения в игровых сервисах, чтобы они были одинаковыми, потому что использование разных версий вызывает некоторые ошибки

Поэтому я меняю эти значения

"cordova-plugin-request-location-accuracy": {
        "PLAY_SERVICES_LOCATION_VERSION": "16.+"
      },
      "cordova-plugin-googleplus": {
        "REVERSED_CLIENT_ID": "MY_REVERSED_ID",
        "PLAY_SERVICES_VERSION": "11.8.0"
      },

To

"cordova-plugin-request-location-accuracy": {
        "PLAY_SERVICES_LOCATION_VERSION": "11.8.0"
      },
      "cordova-plugin-googleplus": {
        "REVERSED_CLIENT_ID": "MY_REVERSED_ID",
        "PLAY_SERVICES_VERSION": "11.8.0"
      },

И удалите платформы, www и папку плагинов и выполните команду «ionic cordova build android», и все заработает.

person Stalin Maza    schedule 14.07.2019

У меня такая же проблема с ionic 4.

следующее изменение исправляет мою проблему: -----

до :

cordova.system.library.5=com.google.android.gms:play-services-auth:11.8.0
cordova.system.library.6=com.google.android.gms:play-services-identity:11.8.0

После :

cordova.system.library.5=com.google.android.gms:play-services-auth:15.0.1
cordova.system.library.6=com.google.android.gms:play-services-identity:15.0.1

вы можете найти эти настройки в вашем файле "platform / android / project.properties".

person Sushil    schedule 11.08.2019

вы должны удалить свой плагин:

cordova plugin rm cordova-plugin-googleplus

и снова установите:

cordova plugin add cordova-plugin-googleplus --save --variable REVERSED_CLIENT_ID=<you_reversed_client_id>

это сработало для меня.

person Fernando    schedule 08.10.2019