VK Cloud logo

Справочник SDK для Android

Системные требования

  • Android версии 5.0 (API 21) и выше;
  • Java версии 11 и выше;
  • Kotlin версии 1.9.0 и выше.

Отобразить капчу

Метод VKCaptcha.openCaptcha() отображает капчу пользователю в Android-приложении. Капча отображается как Activity и интегрируется в навигацию приложения.

Параметры метода:

Параметр

Обязательный

Тип

Описание

domain

Справочник SDK для Android

string

Домен для получения токена после прохождения капчи. Должен соответствовать домену, указанному в redirectUri

redirectUri

Справочник SDK для Android

string

Ссылка для запуска виджета капчи во фронтенде вашего приложения, полученная в параметре link в ответе метода GET /captchaNotRobot.createSession. Содержит сессионный токен и метаданные:

  • domain — домен, на котором будет использована капча;
  • session_token — сессионный токен;
  • variant — вид отображения капчи (block или popup)

listener

Справочник SDK для Android

VKCaptchaResultListener

Функция обратного вызова (callback), вызывается после завершения прохождения капчи

Пример вызова метода:

VKCaptcha.openCaptcha(domain = domain,redirectUri = captchaUrl,listener = listener)

Получить результат прохождения капчи

Интерфейс VKCaptchaResultListener возвращает результат прохождения капчи.

Пример:

interface VKCaptchaResultListener {    fun onResult(result: VKCaptchaResult) {        when (result) {            is VKCaptchaResult.Success -> {                val token = result.token                repeatRequest(token)            }            is VKCaptchaResult.Error -> {                // Обработка ошибки или закрытия капчи            }        }    }    }

Здесь:

  • VKCaptchaResult — sealed-класс с результатом прохождения капчи:

    • VKCaptchaResult.Success возвращает токен успешного прохождения капчи (token: String) и домен, где выполнялась капча (domain: String?);
    • VKCaptchaResult.Error возвращает ошибку, возникшую при прохождении капчи (error: VKCaptchaError) и домен, где выполнялась капча (domain: String?).
  • VKCaptchaError — sealed-класс с ошибками, возникающими при прохождении капчи:

    • NetworkError(message, error) — ошибка сети;
    • IllegalArgumentError(message) — ошибка в переданных параметрах;
    • Cancelled() — капча была закрыта пользователем;
    • WebviewIsUpdatingError(message, error) — ошибка при обновлении System WebView.

Закрыть капчу

Метод VKCaptcha.closeCaptcha() закрывает виджет капчи. Он вызывает onResult с ошибкой VKCaptchaError.Cancelled.

Пример вызова метода:

VKCaptcha.closeCaptcha()

Получить токен успешного прохождения капчи

Метод VKCaptcha.getToken() возвращает токен успешного прохождения капчи.

Пример вызова метода:

val token = VKCaptcha.getToken("<ДОМЕН>")

Выбрать язык капчи

Метод VKCaptcha.setLocale() устанавливает язык локализации капчи. По умолчанию используется системный язык.

Возможные значения:

  • ru — русский;
  • be — белорусский;
  • de — немецкий;
  • en — английский;
  • es — испанский;
  • fr — французский;
  • kk — казахский;
  • pl — польский;
  • tr — турецкий;
  • uk — украинский;
  • uz — узбекский.

Пример вызова метода:

VKCaptcha.setLocale(Locale("ru"))