https://ionicframework.com/docs/native/google-plus/ の指示に従いました。
私は作成しましたAndroid Client in 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
のどちらにも含まれません。コンソールにエラーは表示されません。
Ionicバージョン3.20.0
Cordovaバージョン7.1.0
Ionic Native GooglePlus 5.3.0
Androidフォンバージョン5.1.1
cordova-plugin-googleplus 5.3.0
Ionic=============================================(ネイティブの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 console 42-これは、cordova-plugin-googleplusプラグインでエラー処理が適切に機能していないことを意味します。
最後に、根本的な原因と解決策が見つかりました。この問題は、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:+
する必要があります
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
UPDATE 08.10.2018
最後の更新後、プラグインは再び機能しなくなります。この問題は、「com.google.Android.gms:play-services-: `のバージョンの競合が原因で発生しました。
例えば、 com.google.Android.gms:play-services-maps:15.0.1
、Googleマッププラグインで使用、およびcom.google.Android.gms:play-services-auth:11.8.0
Google Plusプラグインで使用されます。
解決策は簡単です。
config.xml
置く<variable name="PLAY_SERVICES_VERSION" value="15.0.1" />
(の代わりに 15.0.1
すべてのプラグインに新しい/古いバージョンが存在する可能性があります。これは、再生サービスを使用するプラグインです。通常、Googleサービスに関連するすべてのプラグインです。platforms/Android/project.properties
すべての場所でPlayサービスバージョンを使用15.0.1
(ここではバージョン1と同じバージョンにする必要があります)。答えはヘロインありがとうございます。私の問題は:
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プラスが再び機能するようになりました。
Android/project.properties、google_authおよびIDを含む行を次のように変更しようとしました
cordova.system.library.5=com.google.Android.gms:play-services-auth:+ cordova.system.library.6=com.google.Android.gms:play-services-identity:+
I used com.google.Android.gms:play-services-auth:11.8.0 but still popup is not coming. No error. it never comes into neither then nor catch. No error is displayed in console.
Tried below code :
<code>
if (this.platform.is('cordova')) {
this.googlePlus.login({
'scopes': '', // optional, space-separated list of scopes, If not included or empty, defaults to `profile` and `email`.
'webClientId': environment.googleWebClientId, // optional clientId of your Web application from Credentials settings of your project - On Android, this MUST be included to get an idToken. On iOS, it is not required.
'offline': true
}).then((response) => {
const googleCredential = firebase.auth.GoogleAuthProvider.credential(response.idToken);
firebase.auth().signInWithCredential(googleCredential)
.then(user => {
console.log("Firebase success: " + JSON.stringify(user));
resolve();
});
},(err) => {
console.log("Error in doGoogleLogin " + err);
reject(err);
});
}
</code>
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」ファイルで確認できます。
プラグインをアンインストールする必要があります:
cordova plugin rm cordova-plugin-googleplus
そして再度インストールします:
cordova plugin add cordova-plugin-googleplus --save --variable REVERSED_CLIENT_ID=<you_reversed_client_id>
これは私のために働いた。
で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
に:
cordova.system.library.6=com.google.Android.gms:play-services-auth:+
cordova.system.library.7=com.google.Android.gms:play-services-identity:+
私の場合、同じことがハッピングであり、ほぼ1か月間試してみましたが、最後に機能したのは、プラグインフォルダーを削除し、Androidプラットフォームを削除して再度追加したことです。それは誰かを助けるでしょう。
私の場合、異なるバージョンを使用するとエラーが発生するため、playサービスの値を同じに変更して修正しました
これらの値を変更します
"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"
},
に
"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、pluginsフォルダーを削除し、「ionic cordova build Android」コマンドを実行すると、すべて機能します。