skill: add Android skills

This commit is contained in:
2026-07-14 10:34:54 +08:00
parent e260c02629
commit ab82fb7cf0
182 changed files with 62992 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
This document describes how to integrate the Credential Manager API with an
Android app that uses WebView. Credential Manager is supported natively in the
`android.webkit.WebView` library in [version 1.12.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.12.0) and later.
## Prerequisites
To use Credential Manager in WebView, add the following dependencies to your app
module's build script:
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")
}
You will also need to associate your app with a website that your app owns using
digital asset linking. For more information, see
[adding digital asset linking](https://developer.android.com/identity/credential-manager/prerequisites).
## Use the WebKit library
To use the WebKit library, check for feature support, and then enable support by
calling `setWebAuthenticationSupport()`:
class WebViewActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
// Put your webview link here.
val url = "https://project-sesame-426206.appspot.com/passkey-signup"
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.")
}
}
},
)
}
}
}
> [!NOTE]
> **Note:** The WebKit library doesn't support `mediation:"conditional"` requests.
## Web integration
To learn how to build Web integration see
[Create a passkey for passwordless logins](https://web.dev/passkey-registration/).
You can also reference the [demo site source](https://github.com/deephand/webauthn-in-webview).
## Testing and deployment
Test the entire flow thoroughly in a controlled environment to verify proper
communication between the Android app, the web page, and the backend.
Deploy the integrated solution to production, verifying that the backend can
handle incoming registration and authentication requests. The backend code
should generate initial JSON for registration (create) and authentication (get)
processes. It should also handle validation and verification of the responses
received from the web page.
Verify the implementation corresponds to the [UX recommendations](https://developer.android.com/design/ui/mobile/guides/patterns/passkeys).