Android 15 के बीटा 2 वर्शन के साथ androidx.credentials:1.5.0-alpha01 का इस्तेमाल करके, डेवलपर उपयोगकर्ता नाम या पासवर्ड फ़ील्ड जैसे खास व्यू को क्रेडेंशियल मैनेजर के अनुरोधों से लिंक कर सकते हैं. जब उपयोगकर्ता इनमें से किसी एक व्यू पर फ़ोकस करता है, तो उससे जुड़ा अनुरोध क्रेडेंशियल मैनेजर को भेजा जाता है. इस प्रोसेस के बाद, सभी सेवा देने वाली कंपनियों के क्रेडेंशियल इकट्ठा कर लिए जाते हैं. साथ ही, इन्हें ऑटोमैटिक भरने की सुविधा वाले यूज़र इंटरफ़ेस (यूआई) में दिखाया जाता है. जैसे, कीबोर्ड पर इनलाइन सुझाव या ड्रॉप-डाउन सुझाव. इस सुविधा का इस्तेमाल, फ़ॉलबैक के तौर पर किया जा सकता है. ऐसा तब होता है, जब उपयोगकर्ता गलती से क्रेडेंशियल मैनेजर खाता चुनने वाले टूल को खारिज कर देते हैं और फिर काम के फ़ील्ड पर टैप करते हैं.
इस सुविधा के लिए डेवलपर, Jetpack androidx.Credentials लाइब्रेरी का इस्तेमाल कर सकते हैं.
पहली इमेज: पासवर्ड, पासकी, और 'Google से साइन इन करें' सुविधा का इस्तेमाल करके, क्रेडेंशियल से नतीजे अपने-आप भरे जाएं.
लागू करना
ऑटोमैटिक भरने की सुविधा के नतीजों में क्रेडेंशियल दिखाने के लिए, क्रेडेंशियल मैनेजर का इस्तेमाल करें. इसके लिए, GetCredentialRequest
बनाने के लिए स्टैंडर्ड तरीके का इस्तेमाल करें. इसके बाद, इसे काम के व्यू पर सेट करें. रिस्पॉन्स मैनेज करने का तरीका एक ही होता है, फिर चाहे रिस्पॉन्स getCredential
एपीआई कॉल से मिले या PendingGetCredentialRequest
से. इसका उदाहरण यहां दिया गया है.
सबसे पहले, GetCredentialRequest
बनाएं:
Kotlin
// 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) )
Java
// Retrieves the user's saved password for your app. GetPasswordOption getPasswordOption = new GetPasswordOption(); // Get a passkey from the user's public key credential provider. GetPublicKeyCredentialOption getPublicKeyCredentialOption = new GetPublicKeyCredentialOption(requestJson); GetCredentialRequest getCredRequest = new GetCredentialRequest( Arrays.asList(getPasswordOption, getPublicKeyCredentialOption) );
इसके बाद, getCredential
एपीआई को कॉल करें. इससे क्रेडेंशियल मैनेजर सिलेक्टर दिखता है.
Kotlin
coroutineScope.launch { try { val result = credentialManager.getCredential( context = activityContext, // Use an activity-based context. request = getCredRequest ) handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } }
Java
coroutineScope.launch(new CoroutineScopeRunnable() { @Override public void run(@NonNull CoroutineScope scope) { try { GetCredentialResponse result = credentialManager.getCredential( activityContext, // Use an activity-based context. getCredRequest ); handleSignIn(result); } catch (GetCredentialException e) { handleFailure(e); } } });
आखिर में, ऑटोमैटिक भरने की सुविधा चालू करें. getCredRequest
को काम के व्यू (जैसे, username, password
) पर सेट करें, ताकि उपयोगकर्ता इन व्यू के साथ इंटरैक्ट करने पर, क्रेडेंशियल के अपने-आप भरने की सुविधा चालू हो सके.
Kotlin
import androidx.credentials.PendingGetCredentialRequest usernameEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) } passwordEditText.pendingGetCredentialRequest = PendingGetCredentialRequest( getCredRequest) { response -> handleSignIn(response) }
Java
import androidx.credentials.CredentialManagerViewHandler; import androidx.credentials.PendingGetCredentialRequest; CredentialManagerViewHandler.setPendingGetCredentialRequest( usernameEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } ) CredentialManagerViewHandler.setPendingGetCredentialRequest( passwordEditText, new PendingGetCredentialRequest( getCredRequest, result -> { handleSignIn(result); return null; } )