لتفعيل ميزة "تسجيل الدخول بنقرة واحدة" للمستخدمين المتكرّرين، يمكنك مطالبتهم بحفظ كلمة مرورهم على Google. سيتمكّن المستخدم من تسجيل الدخول باستخدام كلمات المرور المحفوظة في تطبيقك وعلى الويب.
عند بدء عملية حفظ كلمة المرور، سيظهر للمستخدم مربّع حوار في أسفل الشاشة يتيح له اختيار ما إذا كان يريد حفظ كلمة المرور وحساب Google الذي يريد حفظها فيه.
بدء مربّع حوار علامة التبويب السفلية لحفظ كلمة المرور
يجب فتح مربّع حوار حفظ كلمة المرور بعد مصادقة اسم المستخدم وكلمة المرور باستخدام الخلفية. الاحتفاظ ببيانات الاعتماد في الذاكرة أثناء المصادقة بعد التأكّد من أنّ بيانات الاعتماد صالحة، افتح مربع diálogoحفظ باتّباع الخطوات التالية:
أنشئ عنصرًا جديدًا من النوع
SignInPassword
. يجب إعداده باستخدام معرّف المستخدم الذي يستخدمه مع خدمتك (مثل اسم المستخدم أو عنوان البريد الإلكتروني) وكلمة المرور التي تريد حفظها.private static final int REQUEST_CODE_GIS_SAVE_PASSWORD = 2; /* unique request id */ private void savePassword() { SignInPassword signInPassword = new SignInPassword(userId, password); ...
أنشئ عنصرًا من النوع
SavePasswordRequest
.SavePasswordRequest savePasswordRequest = SavePasswordRequest.builder().setSignInPassword(signInPassword).build();
احصل على
PendingIntent
لعرض مربّع حوار حفظ كلمة المرور منIdentity.getCredentialSavingClient
وشغِّل العملية:Identity.getCredentialSavingClient(activity) .savePassword(savePasswordRequest) .addOnSuccessListener( result -> { startIntentSenderForResult( result.getPendingIntent().getIntentSender(), REQUEST_CODE_GIS_SAVE_PASSWORD, /* fillInIntent= */ null, /* flagsMask= */ 0, /* flagsValue= */ 0, /* extraFlags= */ 0, /* options= */ null); })
التعامل مع نتائج حفظ كلمة المرور
يمكنك معالجة نتيجة عملية حفظ كلمة المرور في onActivityResult:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_GIS_SAVE_PASSWORD) {
if (resultCode == Activity.RESULT_OK) {
/* password was saved */
} else if (resultCode == Activity.RESULT_CANCELED) {
/* password saving was cancelled */
}
}
}
private ActivityResultLauncher<IntentSenderRequest> savePasswordHandler =
registerForActivityResult(new ActivityResultContracts.StartIntentSenderForResult(), result -> {
// handle intent result here
});