لتفعيل ميزة "النقرة الواحدة" للمستخدمين العائدين، يمكنك أن تطلب منهم حفظ كلمة المرور باستخدام Google. سيتمكّن المستخدم من تسجيل الدخول باستخدام كلمات المرور المحفوظة في تطبيقك وعلى الويب.
عند بدء عملية حفظ كلمة المرور، سيظهر للمستخدم مربع حوار في أسفل الشاشة يتيح له اختيار ما إذا كان يريد حفظ كلمة المرور وفي أي حساب Google يريد حفظها.
إطلاق مربّع الحوار الخاص بحفظ كلمة المرور في ورقة البيانات السفلية
يجب عرض مربّع حوار حفظ كلمة المرور بعد مصادقة اسم المستخدم وكلمة المرور باستخدام الخلفية. يجب الاحتفاظ ببيانات الاعتماد في الذاكرة أثناء المصادقة. بعد التأكّد من أنّ بيانات الاعتماد صالحة، افتح مربّع الحوار الخاص بالحفظ باتّباع الخطوات التالية:
أنشئ عنصر
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
});