Questo documento descrive come integrare l'API Credential Manager con un'app per Android che utilizza WebView. Credential Manager è supportato in modo nativo nella
libreria android.webkit.WebView nella versione 1.12.0 e successive.
Prerequisiti
Per utilizzare Credential Manager in WebView, aggiungi le seguenti dipendenze allo script di build del modulo dell'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")
}
Dovrai anche associare la tua app a un sito web di tua proprietà utilizzando il collegamento degli asset digitali. Per saperne di più, vedi Aggiungere il collegamento degli asset digitali.
Utilizzare la libreria WebKit
Per utilizzare la libreria WebKit, verifica il supporto delle funzionalità, quindi attiva il supporto chiamando
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.")
}
}
},
)
}
}
}
Integrazione web
Per scoprire come creare l'integrazione web, consulta Crea una passkey per gli accessi senza password. Puoi anche fare riferimento alla fonte del sito dimostrativo.
Test e deployment
Testa attentamente l'intero flusso in un ambiente controllato per verificare la corretta comunicazione tra l'app per Android, la pagina web e il backend.
Esegui il deployment della soluzione integrata in produzione, verificando che il backend possa gestire le richieste di registrazione e autenticazione in entrata. Il codice di backend deve generare il JSON iniziale per i processi di registrazione (creazione) e autenticazione (recupero). Inoltre, deve gestire la convalida e la verifica delle risposte ricevute dalla pagina web.
Verifica che l'implementazione corrisponda ai consigli per l'esperienza utente.