Ionic Native GooglePlus登录失败,没有任何错误

her*_*oin 7 cordova ionic-framework google-plus-signin ionic-native ionic3

我按照https://ionicframework.com/docs/native/google-plus/中的说明操作.

我使用正确的SHA-1 在https://console.cloud.google.com/apis/credentials/oauthclient中创建了Android客户端(重新检查使用keytool -list -printcert -jarfile <path to your apk>)

登录代码很简单,如说明:

this.googlePlus.login({})
.then(res => console.log(res))
.catch(err => console.error(err));
Run Code Online (Sandbox Code Playgroud)

然而,它从未进入既不then也不是catch.控制台中不显示错误.

离子版3.20.0

Cordova版本7.1.0

Ionic Native GooglePlus 5.3.0

Android手机版5.1.1

cordova-plugin-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
Run Code Online (Sandbox Code Playgroud)

然后我在Chrome控制台42中看到 - 这意味着,错误处理在cordova-plugin-googleplus插件中无法正常工作.

her*_*oin 10

最后,找到了根本原因和解决方案.问题发生的原因是Google更新了所有com.google.android.gms:play-*模块,这影响了所有Google服务的cordova插件.

如果您只使用Google Plus插件,那么一切都应该没问题.

在其他情况下,project.properties,plugin.xml文件中的所有依赖项com.google.android.gms:play-*应替换为旧版本11.8.0:

是

com.google.android.gms:play-services-auth:+
Run Code Online (Sandbox Code Playgroud)

应该

com.google.android.gms:play-services-auth:11.8.0
Run Code Online (Sandbox Code Playgroud)

我知道,这被称为变通方法更好,但没有其他解决方案可行.

谢谢你们:

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.xmlput <variable name="PLAY_SERVICES_VERSION" value="15.0.1" />(而不是15.0.1可能有更新/更旧的版本)到每个使用播放服务的插件 - 通常所有插件都与Google服务相关.
  2. 在platforms/android/project.properties任何地方都可以使用播放服务版本15.0.1(这里应该与第1点中的版本相同).


小智 5

谢谢海洛因的回答。我的问题是:

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

我所做的修正是按照海洛因的建议,但是我删除了2)和3)的11.8.0,只是将其替换为“ +”。然后我进入config.xml,发现:

变量名称=“ PLAY_SERVICES_VERSION”值=“ 11.8.0”

如海洛因建议的,然后将“ 11.8.0”替换为“ +”。重新编译并运行,现在google plus再次运行。