# Cordova
Последний релиз: версия 1.31.2
# Подготовка к работе с плагинами
Для работы любого из наших плагинов необходимо предварительно получить accessToken.
- В Дешборде IDnGO сгенерируйте
appTokenиsecretKey. - Используя их, выполните API-запрос для получения
accessToken.
Подробная инструкция - Полученный токен используйте при инициализации SDK.
# Установка
- В командной строке выполните:
cordova plugin add @idngo/cyberity-mobilesdk-cordova-plugin
- Добавьте в iOS и Android части приложения зависимости от нашего MobileSDK:
# Android
- API уровня 23 (Android 5.0) или новее
- Kotlin 1.9.25 или новее
Добавьте репозиторий в android/build.gradle:
allprojects {
repositories {
// ...
maven { url "https://maven.cyberity.ru/repository/maven-public/" }
// ...
}
}
# iOS
Внимание:
Убедитесь, что в вашем проекте отключен Bitcode.
- Добавьте в верхнюю часть
ios/Podfile:
platform :ios, '13.0'
source 'https://cdn.cocoapods.org/'
source 'https://github.com/idngo/specs.git'
- После установки пакета выполните команду:
npx pod-install
Совет:
Если возникает ошибка совместимости «CocoaPods could not find compatible versions for pod "CyberityMobileSDK"», выполните:
cd ios && pod update CyberityMobileSDK && cd ..
# Доступы к аппаратным функциям
Фреймворк запросит доступ к камере и микрофону, галерее фотографий и геолокации. По этой причине требуется наличие соответствующих описаний использования в файле Info.plist приложения. Тексты описаний можно изменять в соответствии с вашими требованиями.
Для добавления текста передайте переменные CAMERA_USAGE, MICROPHONE_USAGE, PHOTO_USAGE и LOCATION_USAGE при установке плагина:
cordova plugin add @idngo/cyberity-mobilesdk-cordova-plugin \
--variable CAMERA_USAGE="Предоставьте доступ к камере для съемки фото" \
--variable MICROPHONE_USAGE="Предоставьте доступ к микрофону для записи видео с голосом" \
--variable PHOTO_USAGE="Предоставьте доступ к галерее для выбора фотографий" \
--variable LOCATION_USAGE="Предоставьте доступ к вашему местоположению"
# Инициализация
# Настройка
Импортируйте класс в коде приложения.
import CBRMobileSDK from '@idngo/cyberity-mobilesdk-cordova-plugin';
let launchCBRMobileSDK = () => {
// Перед запуском убедитесь, что настроен уровень проверки и получен accessToken для правильного окружения
let accessToken = 'your_access_token';
let cbrMobileSDK = CBRMobileSDK.init(accessToken, () => {
// Вызывается при истечении срока действия токена
// Получите новый accessToken от своего бэкэнда
// Пример реализации
return new Promise((resolve, reject) => {
resolve('your_new_access_token')
})
})
// Необязательный колбек для получения уведомлений о событиях
.withHandlers({
onStatusChanged: (event) => {
console.log("onStatusChanged: [" + event.prevStatus + "] => [" + event.newStatus + "]");
}
})
.withDebug(true)
.withLocale('en') // Необязательный колбек для назначения другого системного языка
.build();
cbrMobileSDK.launch().then(result => {
console.log("SDK State: " + JSON.stringify(result))
}).catch(err => {
console.log("SDK Error: " + JSON.stringify(err))
});
Метод cbrMobileSDK.launch() возвращает Promise объекта Result, который содержит статус SDK при его закрытии.
Результат Result
Объект, описывающий результат последнего запуска SDK:
| Поле | Тип | Описание |
|---|---|---|
success | Boolean | TRUE — ошибок не было, FALSE — была ошибка. |
status | String | Статус SDK. |
errorType | String | Тип ошибки (если есть). |
errorMsg | String | Подробное описание ошибки (если есть). |
{
"success": false,
"status": "Failed",
"errorType": "Unauthorized",
"errorMsg": "Unauthorized access with accessToken=[your_access_token]"
}
# Запуск SDK
Далее вы можете использовать launchCBRMobileSDK(), чтобы запустить SDK.
<Button onPress={launchCBRMobileSDK} title="Запустить SDK" />
# Закрытие SDK
По умолчанию, как только пользователь будет одобрен, SDK автоматически закрывается через 3 секунды. Вы можете настроить этот интервал времени или отключить автоматическое закрытие, установив значение 0:
cbrMobileSDK.withAutoCloseOnApprove(0)
Чтобы закрыть SDK программно воспользуйтесь:
cbrMobileSDK.dismiss()
# Дополнительные настройки
# Данные пользователя
При необходимости вы можете передавать эл. почту и/или номер телефона, которые будут изначально присвоены пользователю.
.withApplicantConf({
"email": "...",
"phone": "..."
})
# Предпочтительные документы
Для шагов IDENTITY* (проверка документа) можно указать страну и тип документа, которые будут выбраны автоматически, минуя экран выбора типа документа.
Обратите внимание, что переданные параметры будут применяться только в том случае, если соответствующая комбинация страны и типа документа (idDocType) разрешена на этом шаге согласно настройкам уровня.
.withPreferredDocumentDefinitions({
"IDENTITY": {
"idDocType":"PASSPORT",
"country":"RUS"
},
"IDENTITY2": {
"idDocType":"DRIVERS",
"country":"ENG"
}
})
# Переводы
Вы можете настроить тексты, используемые в SDK, в разделе Дешборда «Интеграции SDK».
Язык текста будет установлен в соответствии с настройками системы, но вы можете изменить его на нужный вам язык.
Для переопределения системного языка:
.withLocale("en")
# Текстовые строки
Часть текста может быть задана локально и сохраняться при смене настроек языка SDK. Например, для ситуаций, когда сервер с переводом недоступен из-за отсутствия интернета, но нужно гарантированно отобразить определённый текст, используется локальное управление строками.
.withStrings({
"sns_oops_network_title": "Oops! Seems like the network is down.",
"sns_oops_network_html": "Please check your internet connection and try again.",
"sns_oops_action_retry": "Try again",
})
# Аналитика
SDK собирает и отправляет данные об использовании на серверы IDnGO. Мы не отслеживаем чувствительные данные, отправляется только общая статистика использования. Она включает навигацию по экранам, взаимодействие с элементами интерфейса и так далее.
Мы анализируем эти данные для улучшения IDnGO. Данные не передаются третьим сторонам, и не используются для рекламы.
Для отключения аналитики данных воспользуйтесь:
.withAnalyticsEnabled(false)
# События
События SDK можно получать через onEvent:
.withHandlers({
onEvent: (event) => {
console.log("onEvent: " + JSON.stringify(event));
}
})
Каждое событие содержит eventType и набор параметров, упакованных в словарь payload.
{
"eventType": "StepInitiated",
"payload": {
"idDocSetType": "IDENTITY"
}
}
Поля элемента eventType
| Тип события | Полезная нагрузка | Описание |
|---|---|---|
ApplicantLoaded | { | Анкета пользователя загружена. |
StepInitiated | { | Шаг проверки инициирован. |
StepCompleted | { | Шаг проверки выполнен или отменён. |
Analytics | { | Произошло аналитическое событие. |
# Действия пользователя
Чтобы использовать SDK в режиме действий пользователя необходимо создать уровень верификации с шагом проверки «Действие пользователя» (см. подробнее).
Токен доступа создается с параметрами userId, levelName, externalActionId.
# Справочник API
# Статусы SDK
| Статус | Описание |
|---|---|
Ready | SDK инициализирован и готов к запуску. |
Failed | SDK завершился с ошибкой. |
Initial | Шаги проверки еще не пройдены. |
Incomplete | Пройдена часть шагов проверки. |
Pending | Ожидается проверка пользователя. |
TemporarilyDeclined | Временный отказ. |
FinallyRejected | Окончательный отказ. |
Approved | Анкета пользователя одобрена. |
# Типы ошибок errorType
| Ошибка | Описание |
|---|---|
Unknown | Неизвестная ошибка. |
InvalidParameters | Некорректные параметры. |
Unauthorized | Неавторизованный доступ (недействительный или истекший токен). |
InitialLoadingFailed | Ошибка начальной загрузки с сервера. |
ApplicantNotFound | Анкета пользователя не найдена. |
ApplicantMisconfigured | Анкета пользователя найдена, но настройки некорректные (например, отсутствует idDocs). |
InitializationError | Ошибка инициализации. |
NetworkError | Ошибка сети (пользователь видит экран «Network Oops»). |
UnexpectedError | Неожиданная ошибка (экран «Fatal Oops»). |