Есть ли какой-либо эквивалент WebViewClient в пользовательской вкладке Chrome

#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 . Последнее, возможно, может быть использовано для вашей цели.