क्रेडेंशियल मैनेजर को ऑटोमैटिक भरने की सुविधा के साथ इंटिग्रेट करें

Android 15 Beta 2 से, androidx.credentials:1.5.0-alpha01 के साथ मिलकर काम करने की सुविधा उपलब्ध है. इसकी मदद से डेवलपर, क्रेडेंशियल मैनेजर के अनुरोधों के साथ कुछ खास व्यू लिंक कर सकते हैं. जैसे, उपयोगकर्ता नाम या पासवर्ड फ़ील्ड. जब उपयोगकर्ता इनमें से किसी एक व्यू पर फ़ोकस करता है, तो Credential Manager को इससे जुड़ा अनुरोध भेजा जाता है. इसके बाद, मिले क्रेडेंशियल को सेवा देने वाली सभी कंपनियों के हिसाब से इकट्ठा किया जाता है. साथ ही, उन्हें ऑटोमैटिक भरने वाले यूज़र इंटरफ़ेस (यूआई) में दिखाया जाता है. जैसे, कीबोर्ड पर लाइन में दिखने वाले सुझाव या ड्रॉप-डाउन सुझाव. इस सुविधा का इस्तेमाल फ़ॉलबैक के तौर पर किया जा सकता है. ऐसा तब होता है, जब उपयोगकर्ता गलती से क्रेडेंशियल मैनेजर खाते के सिलेक्टर को खारिज कर देते हैं और फिर काम के फ़ील्ड पर टैप करते हैं.

डेवलपर के लिए, इस सुविधा का इस्तेमाल करने के लिए Jetpack androidx.credentials लाइब्रेरी सबसे सही एंडपॉइंट है.

ऑटोमैटिक भरने की सुविधा के नतीजों में क्रेडेंशियल दिखाने वाला इलस्ट्रेशन
पहली इमेज: पासवर्ड, पासकी, और Google से साइन इन करने की सुविधा का इस्तेमाल करके, क्रेडेंशियल अपने-आप भरने की सुविधा के नतीजे.

लागू करना

ऑटोफ़िल के नतीजों में क्रेडेंशियल दिखाने के लिए, Credential Manager का इस्तेमाल करें. इसके लिए, GetCredentialRequest बनाने के लिए स्टैंडर्ड तरीके से लागू करने का इस्तेमाल करें. इसके बाद, इसे काम के व्यू पर सेट करें. जवाब को हैंडल करने का तरीका एक जैसा होता है. भले ही, जवाब getCredential एपीआई कॉल से मिला हो या PendingGetCredentialRequest से. यहां दिए गए उदाहरण में यह दिखाया गया है.

सबसे पहले, GetCredentialRequest बनाएं:

// Retrieves the user's saved password for your app.
val getPasswordOption = GetPasswordOption()

// Get a passkey from the user's public key credential provider.
val getPublicKeyCredentialOption = GetPublicKeyCredentialOption(
    requestJson = requestJson
)

val getCredRequest = GetCredentialRequest(
    listOf(getPasswordOption, getPublicKeyCredentialOption)
)

इसके बाद, getCredential एपीआई को कॉल करें. इससे क्रेडेंशियल मैनेजर सिलेक्टर दिखता है.

coroutineScope {
    try {
        val result = credentialManager.getCredential(
            context = activityContext, // Use an activity-based context.
            request = getCredRequest
        )
        handleSignIn(result)
    } catch (e: GetCredentialException) {
        handleFailure(e)
    }
}

आखिर में, ऑटोमैटिक तरीके से जानकारी भरने की सुविधा चालू करें. getCredRequest को काम के व्यू (जैसे कि username, password) पर सेट करें, ताकि जब उपयोगकर्ता इन व्यू के साथ इंटरैक्ट करे, तो अपने-आप भरने की सुविधा में क्रेडेंशियल के नतीजे दिख सकें.

usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}

passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest(
    getCredRequest
) { response ->
    handleSignIn(response)
}