Подключение к мобильному приложению на Android
-
Загрузите VK Капча SDK:
Maven-
Добавьте репозиторий Maven в
dependencyResolutionManagementилиsettings.gradle.kts:dependencyResolutionManagement {repositories {maven(url = "https://artifactory-external.vkpartner.ru/artifactory/vkid-sdk-android/")}} -
Подключите библиотеку в
build.gradle.ktsмодуля приложения:dependencies {implementation("com.vk.id.captcha:vkid-captcha:<ВЕРСИЯ>")}Здесь
<ВЕРСИЯ>— версия VK Капча SDK для Android (0.0.13). -
В
Android Manifestвашего приложения переопределитеauthorityпровайдера, который инициализирует SDK:<application><providerandroid:name="com.vk.id.captcha.init.SdkInitContentProvider"android:authorities="your.unique.authority"android:exported="false"tools:replace="authorities" /></application>
-
-
Получите от бэкенда ссылку для запуска виджета капчи.
-
(Опционально) Настройте язык локализации капчи. Воспользуйтесь методом SDK
VKCaptcha.setLocale(). -
Отобразите капчу пользователю. Воспользуйтесь методом SDK
VKCaptcha.openCaptcha(). -
Обработайте результат прохождения капчи, используя интерфейс
VKCaptchaResultListener:-
Если вернулся токен успешного прохождения капчи, отправьте его бэкенду для валидации.
-
Если пользователь закрыл капчу, бэкенду ничего не отправляется. Определите, что будет происходить во фронтенде в этом случае.
-
Пример кода на Kotlin:
import com.vk.id.captcha.api.VKCaptchaimport com.vk.id.captcha.api.listener.VKCaptchaResultListenerimport com.vk.id.captcha.api.data.VKCaptchaResultimport android.net.Uriclass CaptchaHandler {fun handleCaptcha(captchaUrl: String) {val listener = object : VKCaptchaResultListener {override fun onResult(result: VKCaptchaResult) {when (result) {is VKCaptchaResult.Success -> {val token = result.tokenrepeatRequest(token)}is VKCaptchaResult.Error -> {// Обработка ошибки или закрытия капчи}}}}val uri = Uri.parse(captchaUrl)val domain = "${uri.scheme}://${uri.host}"VKCaptcha.openCaptcha(domain = domain,redirectUri = captchaUrl,listener = listener)}private fun repeatRequest(token: String) {// Повторный запрос с токеном}}