#android #google-signin #chrome-custom-tabs
#Android #google-вход #chrome-пользовательские вкладки
Вопрос:
Я работаю над приложением, которое реализует вход в систему Google через систему Salesforce. Т.е. Salesforce IDP обеспечивает аутентификацию пользователя с помощью Google и перенаправляет пользователя на главный экран приложения через deeplink.
Теперь, поскольку Google больше не разрешает приложениям открывать страницу входа в Google в webview, мне приходится использовать пользовательскую вкладку Chrome или браузер. После аутентификации мне нужно отменить обратный вызов, который отправит OAuth в приложение. В настоящее время это делается через WebViewClient webviewview, где onShouldOverrideUrlLoading переопределяется. Можно ли это сделать и в пользовательской вкладке Chrome или в браузере?
Чтобы быть более конкретным по моему вопросу, мой существующий код, использующий веб-представление, выглядит следующим образом:
override fun loadWebView(callback: LoginWebViewClient) {
login_web_view?.webViewClient = callback
login_web_view?.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) {
super.onProgressChanged(view, newProgress)
if (!isLoginProcessStarted) {
showProgress(newProgress != 100)
}
}
}
loadLoginOAuth()
}
Я хочу знать, как можно эмулировать вторую строку для пользовательской вкладки или браузера?
Комментарии:
1. Кажется, вы хотите изменить состояние пользовательского интерфейса в клиентском приложении? Будет ли работать CustomTabsCallback? developer.android.com/reference/androidx/browser/customtabs /…
Ответ №1:
Пользовательские вкладки имеют обратные вызовы навигации в CustomTabsCallback (демо), но предоставляют только сигналы для NAVIGATION_STARTED
и NAVIGATION_FINISHED
. Последнее, возможно, может быть использовано для вашей цели.