Подключение к мобильному приложению на iOS
-
Загрузите VK Капча SDK:
Swift Package ManagerCocoaPods-
Добавьте библиотеку в зависимости в файле
Package.swift:dependencies: \[.package(url: "https://github.com/VKCOM/vkid-captcha-ios-sdk", .upToNextMajor(from: "<ВЕРСИЯ>"))\]Здесь
<ВЕРСИЯ>— версия VK Капча SDK для iOS Swift Package Manager (0.1.0) -
Скачайте ZIP-архив и распакуйте его.
-
Добавьте в ваш проект файл
VKCaptchaSDKResources.bundleиз архива.
-
-
Получите от бэкенда ссылку для запуска виджета капчи.
-
Создайте конфигурацию капчи. Воспользуйтесь конфигурационным объектом
VKCaptchaConfiguration(url:). -
Отобразите капчу пользователю. Воспользуйтесь методом SDK
VKCaptcha.getCaptchaViewController(completion:). -
Обработайте результат прохождения капчи:
- Если метод вернул токен успешного прохождения капчи, отправьте его бэкенду для валидации.
- Если пользователь закрыл капчу, бэкенду ничего не отправляется. Определите, что будет происходить во фронтенде в этом случае.
Пример кода на Swift:
import VKCaptchaSDKstruct APIResponse: Decodable {let captchaUrl: String?}func handleCaptcha(captchaUrl: URL) {let config = VKCaptchaConfiguration(url: captchaUrl) // Ссылка для запуска виджета капчи, полученная от бэкенда, содержит сессионный токенlet captcha = VKCaptcha(configuration: config)let vc = captcha.getCaptchaViewController { [weak self] result inswitch result {case .success(let token):self?.repeatRequest(with: token)case .failure:// Обработка закрытия капчиbreak}}present(vc, animated: true)}func performAction() {URLSession.shared.dataTask(with: url) { data, _, _ inguard let data = data,let response = try? JSONDecoder().decode(APIResponse.self, from: data),let captchaUrlString = response.captchaUrl,let captchaUrl = URL(string: captchaUrlString) else {// Обработка успешного ответа без капчиreturn}DispatchQueue.main.async { [weak self] inself?.handleCaptcha(captchaUrl: captchaUrl)}}.resume()}