Со вчерашнего дня, когда я использую gapi.auth2 для входа в Google в установленном приложении PWA на Android, приложение открывает окно браузера, чтобы выбрать пользователя, но оно остается пустым.На этой же странице в браузере Chrome на Android выбор пользователя, как обычно, открывается.Код тот же, с того же сервера.Код не был изменен более чем за 15 дней.Полагаю, проблема в том, что в клиентском коде gapi JS на серверах Google произошли некоторые изменения.Проверка вкладки Вход в Google PWA в Chrome показывает следующую ошибку:
Uncaught Не удалось получить родительский источник из хэша URL-адреса!
Источник в консоли разработчика Google:ок.
Кто-нибудь знает, как решить эту проблему?
Редактировать 1: Блок кода
initGoogle() {
this.ngRedux.dispatch({ type: SN_INIT_GOOGLE });
Observable.create((observer: Observer<any>) => {
let head = document.getElementsByTagName('head');
(<any>window).__ongload = () => {
gapi.load('auth2', () => {
gapi.auth2.init({
client_id: `${AppConfig.google.clientID}`
}).then(() => {
this.auth2 = gapi.auth2.getAuthInstance();
this.googleInitiated();
observer.complete();
}, (err) => {
this.log.error(err);
observer.error(err);
});
});
};
let script: HTMLScriptElement = document.createElement('script');
script.src = 'https://apis.google.com/js/platform.js?onload=__ongload';
script.type = 'text/javascript';
head[ 0 ].appendChild(script);
}).pipe(
timeout(AppConfig.google.timeout),
retry(AppConfig.google.retries),
catchError(error => {
this.googleInitError();
return observableEmpty();
}),
take(1)
).subscribe();
}
async googleLogin(scope: string = 'profile email', rerequest: boolean = false, type: string = SN_GOOGLE_LOGIN): Promise<GoogleUser> {
let goopts = {
scope: this.ngRedux.getState().socialNetworks.getIn([ 'google', 'grantedScopes' ]),
prompt: rerequest ? 'consent' : undefined
};
try {
const user: GoogleUser = await this.auth2.signIn(<any>goopts);
...
return user;
} catch (error) {
...
return error;
}
}
Редактировать 2: Снимок экрана ошибки
Скриншот