Я создал приложение Google Sign-In, используя Ionic, и оно отлично работает, когда оно запускается как веб-приложение.
Однако при экспорте в виде проекта Android с использованием конденсатора он вызывает браузер телефона, чтобы активировать процесс входа в систему. Он закрывает процесс, но никогда не возвращается в приложение.
Я не могу найти решение, и помощь будет полезна. Код показан ниже.
export class GsinginComponent implements OnInit {
private clientId:string = 'xxx.apps.googleusercontent.com';
private scope = [
'profile',
'email',
'https://www.googleapis.com/auth/plus.me',
'https://www.googleapis.com/auth/contacts.readonly',
'https://www.googleapis.com/auth/admin.directory.user.readonly'
].join(' ');
public auth2: any;
public async googleInit() {
let that = this;
gapi.load('auth2', function () {
that.auth2 = gapi.auth2.init({
client_id: 'xxx.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin',
scope: that.scope
});
that.attachSignin(that.element.nativeElement.firstChild);
});
}
public attachSignin(element) {
let that = this;
this.auth2.attachClickHandler(element, {},
function (googleUser) {
console.log(gapi.auth2.getAuthInstance());
let profile = googleUser.getBasicProfile();
var id_token = googleUser.getAuthResponse().id_token;
console.log('Token || ' + id_token);
console.log('ID: ' + profile.getId());
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
//YOUR CODE HERE
// localStorage.setItem('token', id_token )
that._auth.registerGoogleUser(id_token, profile.getName(), profile.getEmail());
//that.router.navigateByUrl('inicio');
//that.router.navigate(['inicio']);
that.navCtrl.navigateRoot('/inicio');
}, function (error) {
console.log(JSON.stringify(error, undefined, 2));
});
}
constructor(private element: ElementRef, private router: Router, private _auth : AuthService, private navCtrl: NavController) {
console.log('ElementRef: ', this.element);
}
ngOnInit() {
this.googleInit();
}
}