如何使用com.amazonaws.mobile.auth.userpools类SignUpActivity和SignInUI向Android应用程序添加更好的验证反馈

如何使用com.amazonaws.mobile.auth.userpools类SignUpActivity和SignInUI向Android应用程序添加更好的验证反馈,android,amazon-web-services,amazon-cognito,amazon-mobile-hub,Android,Amazon Web Services,Amazon Cognito,Amazon Mobile Hub,下面的代码用于显示AWS Android登录对话框,其中包含一个选项,允许用户在Android应用程序中注册(“创建新帐户”)(与iPhone类似)。验证很差 用户将显示一个通用故障对话框,并返回到登录页面,其中包含AWS返回的错误(通常过于技术性,仅限于表单上的第一个错误)。“错误”对话框一次只验证一个字段。用户将被迫返回登录页面,并且必须重新输入其所有信息 任何单一错误或验证错误都将被拒绝,用户将返回登录页面,并要求重新输入其所有信息。单调乏味的用户体验设计 有没有办法改进或利用用户体验并继

下面的代码用于显示AWS Android登录对话框,其中包含一个选项,允许用户在Android应用程序中注册(“创建新帐户”)(与iPhone类似)。验证很差

用户将显示一个通用故障对话框,并返回到登录页面,其中包含AWS返回的错误(通常过于技术性,仅限于表单上的第一个错误)。“错误”对话框一次只验证一个字段。用户将被迫返回登录页面,并且必须重新输入其所有信息

任何单一错误或验证错误都将被拒绝,用户将返回登录页面,并要求重新输入其所有信息。单调乏味的用户体验设计

有没有办法改进或利用用户体验并继续使用AWS?有人知道亚马逊计划改进这一点吗?长期的解决办法是不使用这些类,从头开始编写所有的登录和帐户创建,但我更愿意关注核心应用程序功能,而不是花时间在登录对话框上,至少现在是这样。有些用户在尝试创建帐户时只是卸载了该应用程序,因为它太单调乏味了

private void showSignIn() {
    AWSMobileClient.getInstance().initialize(this, new AWSStartupHandler() {
        @Override
        public void onComplete(final AWSStartupResult awsStartupResult) {
            Log.d(TAG, "AWSStartupHandler.onComplete()" + awsStartupResult);
            AuthUIConfiguration config =
                    new AuthUIConfiguration.Builder()
                            .userPools(true)  // true? show the Email and Password UI
                            .signInButton(FacebookButton.class) // Show Facebook button
                            .signInButton(GoogleButton.class) // Show Google button
                            .logoResId(R.drawable.ic_modlist_aws_signin_icon)
                            .backgroundColor(Color.parseColor("#7FA7BC"))
                            .isBackgroundColorFullScreen(false) // Full screen backgroundColor the backgroundColor full screenff
                            .fontFamily("sans-serif-light") // Apply sans-serif-light as the global font
                            .canCancel(true)
                            .build();

            SignInUI signinUI = (SignInUI) AWSMobileClient.getInstance().getClient(AuthenticatorActivity.this, SignInUI.class);
            signinUI.login(AuthenticatorActivity.this, MainActivity.class).authUIConfiguration(config).execute();
        }
    }).execute();
}
用户体验如下所示:


Amazon在2.7.x版(Android SDK Auth UI,com.amazonaws:aws Android SDK Auth UI:2.7)或前后版本中修复了该问题并改进了验证

有关更多信息: