Установка и использование плагина для 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.setEventsConnectionWithCredentials(<login>, <password>, <host>);

или

await OZSDK.setEventsConnectionWithToken(<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