В этом документе описывается, как интегрировать API Credential Manager с приложением Android, использующим WebView. Credential Manager изначально поддерживается библиотекой android.webkit.WebView версии 1.12.0 и более поздних.
Предпосылки
Чтобы использовать диспетчер учетных данных в WebView, добавьте следующие зависимости в скрипт сборки модуля вашего приложения:
dependencies {
implementation("androidx.credentials:credentials:1.6.0-beta02")
implementation("androidx.credentials:credentials-play-services-auth:1.6.0-beta02")
implementation("androidx.webkit:webkit:1.14.0")
}
Вам также потребуется связать свое приложение с веб-сайтом, владельцем которого оно является, с помощью привязки цифровых активов. Подробнее см. в статье о добавлении привязки цифровых активов .
Используйте библиотеку WebKit
Чтобы использовать библиотеку WebKit, проверьте наличие поддержки функций, а затем включите поддержку, вызвав setWebAuthenticationSupport() :
class WebViewActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val url = "https://passkeys-codelab.glitch.me/"
AndroidView(
factory = { context ->
WebView(context).apply {
settings.javaScriptEnabled = true
webViewClient = WebViewClientImpl()
}
},
update = { webView ->
run {
webView.loadUrl(url)
if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) {
WebSettingsCompat.setWebAuthenticationSupport(
webView.settings,
WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP,
)
// Check if getWebauthenticationSupport may have been disabled by the WebView.
Log.e(
"WebViewPasskeyDemo",
"getWebAuthenticationSupport result: " + WebSettingsCompat.getWebAuthenticationSupport(
webView.settings
),
)
} else {
Log.e("WebViewPasskeyDemo", "WebView does not support passkeys.")
}
}
},
)
}
}
}
Веб-интеграция
Чтобы узнать, как создать веб-интеграцию, см. статью Создание ключа доступа для входа без пароля . Вы также можете обратиться к исходному коду демонстрационного сайта .
Тестирование и развертывание
Тщательно протестируйте весь процесс в контролируемой среде, чтобы убедиться в правильности взаимодействия между приложением Android, веб-страницей и бэкэндом.
Разверните интегрированное решение в рабочей среде, убедившись, что бэкенд может обрабатывать входящие запросы на регистрацию и аутентификацию. Код бэкенда должен генерировать начальный JSON-код для процессов регистрации (create) и аутентификации (get). Он также должен выполнять валидацию и верификацию ответов, полученных от веб-страницы.
Убедитесь, что реализация соответствует рекомендациям UX .