# iOS SDK Описание установки и настройки
Версия 1.30.1
# Требования
- Xcode 15.2 или новее
- iOS 12.0 или новее
Внимание:
Убедитесь, что в вашем проекте отключен Bitcode.
# Установка
# Swift Package Manager
Добавьте https://github.com/idngo/idngo-sdk-ios (версия 1.30.1) в свой проект и подключите библиотеку CyberityMobileSDK в свой целевой файл.
# CocoaPods
- Обновите ваш Podfile:
- Добавьте источники для репозиториев.
- Добавьте зависимость
CyberityMobileSDKв вашtarget.
platform :ios, '12.0'
source '<https://cdn.cocoapods.org/>‘
source '<https://github.com/idngo/specs.git>’
target 'YourApp' do
pod 'CyberityMobileSDK'
# any other dependencies
end
- Выполните команду
pod installв директории вашего проекта.
# Доступы к аппаратным функциям
Фреймворк запросит доступ к камере и микрофону, галерее фотографий и геолокации. По этой причине требуется наличие соответствующих описаний использования в файле Info.plist приложения. Тексты описаний в теге <string></string> можно изменять в соответствии с вашими требованиями.
<key>NSCameraUsageDescription</key>
<string>Предоставьте доступ к камере для съемки фото</string>
<key>NSMicrophoneUsageDescription</key>
<string>Предоставьте доступ к микрофону для записи видео с голосом</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Предоставьте доступ к галерее для выбора фотографий</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Предоставьте доступ к вашему местоположению</string>
# Инициализация
- Импортируйте фреймворк.
import CyberityMobileSDK
- Объявите параметры инициализации.
let accessToken = "..."
accessToken необходимо получить от вашего бэкенда, как это описано в разделе Начало работы. Этот токен указывает на уровень проверки (levelName) и на пользователя (userId), которого необходимо проверить.
Внимание:
MobileSDK будет работать в Основном (Production) или Тестовом (Sandbox) окружении в зависимости от того, где был сгенерирован accessToken.
- Создайте экземпляр
CBRMobileSDKи проверьте, успешно ли выполнена настройка.
let sdk = CBRMobileSDK(
accessToken: accessToken
)
guard sdk.isReady else {
print("Initialization failed: " + sdk.verboseStatus)
return
}
- Используйте обработчик
tokenExpirationHandlerдля обновления токена доступа.
accessTokenимеет ограниченный срок действия, и когда он истекает, нужно предоставить новый.
sdk.tokenExpirationHandler { (onComplete) in
get_token_from_your_backend { (newToken) in
onComplete(newToken)
}
}
Рекомендуем ознакомиться с другими доступными обработчиками и коллбэками.
Совет:
Так как accessToken требуется запрашивать его у вашего бэкенда, для удобства можно отложить предоставление токена доступа до момента отображения SDK. Для этого нужно передать пустую строку в качестве accessToken на этапе инициализации. Таким образом, tokenExpirationHandler будет вызван сразу после того, как SDK отобразится, и пользователь увидит индикатор загрузки.
# Отображение SDK
Как только настройка завершена, можно отображать SDK на экране.
yourViewController.present(sdk.mainVC, animated: true, completion: nil)
Поскольку SDK содержит собственный стек навигации, его нужно показывать модально, а не с помощью push-перехода.
Вы также можете использовать короткий вариант:
sdk.present(from: yourViewController)
Или ещё короче, если вам удобнее показывать SDK на key-window в root view controller:
sdk.present()
# Закрытие SDK
По умолчанию, как только пользователь будет одобрен, SDK автоматически закрывается через 3 секунды. Вы можете настроить этот интервал времени или отключить автоматическое закрытие, установив значение 0.
sdk.setOnApproveDismissalTimeInterval(0)
Если необходимо закрыть SDK программно:
sdk.dismiss()
# Дополнительные настройки
# Данные пользователя
При необходимости вы можете передавать эл. почту и/или номер телефона, которые будут изначально присвоены пользователю.
sdk.initialEmail = "..."
sdk.initialPhone = "..."
# Предпочтительные документы
Для шагов IDENTITY* (проверка документа) можно указать страну и тип документа, которые будут выбраны автоматически, минуя экран выбора типа документа.
Обратите внимание, что переданные параметры будут применяться только в том случае, если соответствующая комбинация страны и типа документа (idDocType) разрешена на этом шаге согласно настройкам уровня.
sdk.preferredDocumentDefinitions = [
.identity: CBRDocumentDefinition(
idDocType: "DRIVERS",
country: "RUS"
)
]