Вход в систему или обратный вызов для сервиса AWS Cognito в Android Kotlin - PullRequest
0 голосов
/ 29 сентября 2018

Я разрабатываю приложение для Android с использованием Kotlin.Я впервые использую Kotlin.Я создаю форму входа в систему, используя сервис AWS Cognito.Для Kotlin aws sdk предоставляет только собственный пользовательский интерфейс для входа в систему и регистрации в службе Cognito.Это мой код

class LoginActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        AWSMobileClient.getInstance().initialize(this) {
            val signin = AWSMobileClient.getInstance().getClient(
                    this@LoginActivity,
                    SignInUI::class.java) as SignInUI
            signin.login(
                    this@LoginActivity,
                    MainActivity::class.java).execute()
        }.execute()
    }
}

Но проблема в том, что мне нужно выполнить некоторые задачи после того, как пользователь вошел в систему или зарегистрировался.Есть ли функция обратного вызова, которую я могу реализовать?

1 Ответ

0 голосов
/ 14 марта 2019

Существует более простой способ, если вы хотите создать свой собственный пользовательский интерфейс для входа в систему.Просто создайте два текстовых поля для имени пользователя и пароля, а затем получите текст из этих двух полей, сохраняя их как строки.После этого вы просто вызываете

AWSMobileClient.getInstance().signIn(username, password, null, object : Callback<SignInResult> {
        override fun onResult(result: SignInResult) {
            // This means it succeeded
        }

        override fun onError(e: Exception) {
            // This means there was an error (obviously)
            e.printStackTrace()
        }
    })

Я также использую этот код для инициализации экземпляра.

AWSMobileClient.getInstance().initialize(baseContext, object : Callback<UserStateDetails> {
        override fun onResult(userStateDetails: UserStateDetails) {
            Log.i("INIT", "onResult: " + userStateDetails.userState)
        }

        override fun onError(e: Exception) {
            Log.e("INIT", "Initialization error.", e)
        }
    })

Я обнаружил, что это намного проще, чем использовать ужасный пользовательский интерфейс, который они предоставляют вSDK.Это также не рассматривается в документации, но должно быть, так как это в 10 раз проще.Чтобы узнать больше об этом, вы можете посмотреть здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...