En este documento, se describe cómo integrar la API de Credential Manager en una app para Android que usa WebView. Credential Manager es compatible de forma nativa con la biblioteca de android.webkit.WebView en la versión 1.12.0 y versiones posteriores.
Requisitos previos
Para usar el Administrador de credenciales en WebView, agrega las siguientes dependencias a la secuencia de comandos de compilación del módulo de tu app:
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")
}
También deberás asociar tu app con un sitio web que sea de tu propiedad a través de la vinculación de recursos digitales. Para obtener más información, consulta cómo agregar la vinculación de recursos digitales.
Usa la biblioteca WebKit
Para usar la biblioteca de WebKit, verifica la compatibilidad de funciones y, luego, habilita la compatibilidad llamando a 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.")
}
}
},
)
}
}
}
Integración web
Si quieres aprender a compilar la integración web, consulta Crea una llave de acceso para los accesos sin contraseña. También puedes consultar la fuente del sitio de demostración.
Pruebas e implementación
Prueba todo el flujo en un entorno controlado para verificar la comunicación adecuada entre la app para Android, la página web y el backend.
Implementa la solución integrada en la producción y verifica que el backend pueda controlar las solicitudes entrantes de registro y autenticación. El código de backend debe generar un JSON inicial para los procesos de registro (creación) y autenticación (get). También debe controlar la validación y la verificación de las respuestas recibidas de la página web.
Verifica que la implementación cumpla con las recomendaciones de UX.