Установка и использование плагина для Flutter
Образец кода для Flutter вы можете найти здесь.
Установка и лицензирование
Добавьте строки из блока ниже в pubspec.yaml проекта, где планируется использовать плагин.
ozsdk:
git:
url: https://gitlab.com/oz-forensics/oz-mobile-flutter-plugin.git
ref: '8.8.2'
Поместите файл лицензии (например, license.json или forensics.license) в папку Flutter application/assets. В pubspec.yaml добавьте asset:
assets
- assets/license.json // название файла лицензии должно совпадать с названием из папки assets
Для Android укажите путь к репозиторию Oz в /android/build.gradle, раздел allprojects → repositories:
allprojects {
repositories {
google()
mavenCentral()
maven { url ‘https://ozforensics.jfrog.io/artifactory/main’ } // ссылка на репозиторий
}
}
Для Flutter 8.24.0 и новее или Android Gradle plugin 8.0.0 и новее добавьте строку в android/gradle.properties:
android.nonTransitiveRClass=false
Минимальная версия SDK – 21 или выше:
defaultConfig {
...
minSDKVersion 21
...
}
Для iOS в Runner → Info → Deployment target → iOS Deployment Target установите версию 13 или выше.
В ios/Podfile закомментируйте строку use_frameworks!
(#use_frameworks!
).
Начало работы с Flutter
Инициализация SDK
Для инициализации вызовите метод init
. Название и путь к файлу лицензии должны совпадать с теми, которые вы указали в pubspec.yaml (например, assets/license.json).
await OZSDK.initSDK([<% название файла лицензии и путь к нему %>]);
Подключение SDK к API
Для подключения используйте полученные от нас логин, пароль и адрес API сервера.
await OZSDK.setApiConnectionWithCredentials(<login>, <password>, <host>);
На стадии коммерческого использования вместо логина и пароля мы рекомендуем использовать токен доступа, который можно получить с помощью метода API /api/authorize/auth
.
await OZSDK.setApiConnectionWithToken(token, host);
По умолчанию логи сохраняются вместе с данными по анализам. Если вы планируете хранить логи отдельно от этих данных, настройте отдельное подключение для телеметрии:
await OZSDK.setEventConnectionWithCredentials(<login>, <password>, <host>);
или
await OZSDK.setEventConnectionWithToken(<token>, <host>);
Съемка видео
Для запуска съемки и получения результата вызовите метод startLiveness
:
await OZSDK.startLiveness(<actions>, <use_main_camera>);
Параметр
Тип
Описание
actions
List<VerificationAction>
Действия на видео
use_main_camera
Boolean
Если установлено True
, используется основная камера, False
– передняя
Обратите внимание: для версий до 8.11 включительно метод для запуска называется executeLiveness
. Он возвращает результат съемки.
Для получения результата съемки в версии 8.12 и новее подпишитесь на livenessResult
, как показано ниже:
class Screen extends StatefulWidget {
static const route = 'liveness';
const Screen({super.key});
@override
State<Screen> createState() => _ScreenState();
}
class _ScreenState extends State<Screen> {
late StreamSubscription<List<Media>> _subscription;
@override
void initState() {
super.initState();
// подписка на результат liveness
_subscription = OZSDK.livenessResult.listen(
(List<Media> medias) {
// содержит медиафайл liveness
},
onError: (Object error) {
// обработка ошибок, чаще всего PlatformException
},
);
}
@override
Widget build(BuildContext context) {
// пропущено для сокращения образца кода
}
void _startLiveness() async {
// запустите экран съемки с помощью метода startLiveness
OZSDK.startLiveness(<list of actions>);
}
@override
void dispose() {
// cancel subscription
_subscription.cancel();
super.dispose();
}
}
Выполнение проверок
Размещенный ниже код поможет вам запустить анализы.
Создайте объект Analysis
:
List<Analysis> analysis = [ Analysis(Type.quality, Mode.serverBased, <media>, {}), ];
Запустите созданный анализ:
final analysisResult = await OZSDK.analyze(analysis, [], {}) ?? [];
Результат анализа запишется в массив объектов analysisResult
.
Для анализа медиафайла, полученного не нашим SDK, используйте следующий код:
media = Media(FileTypedocumentPhoto, VerificationAction.oneShot, “photo_selfie”, null, <pat
Итоговый блок кода (пример):
// замените VerificationAction.blank, если у вас используется другой жест Livenes
final cameraMedia = await OZSDK.executeLiveness([VerificationAction.blank], use_main_camera);
final analysis = [
Analysis(Type.quality, Mode.serverBased, cameraMedia, {}),
];
final analysisResult = await OZSDK.analyze(analysis, [], {});
Last updated
Was this helpful?