Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.6 kB
2
Indexable
Never
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
import 'package:flutter_demo_liveness/liveness_view_controller.dart';

typedef void LivenessViewCreatedCallback(LivenessViewController controller);

class LivenessNativeView extends StatefulWidget {
  static const ROUTE_NAME = 'LivenessNativeView';
  LivenessViewCreatedCallback livenessViewCreatedCallback;

  LivenessNativeView({super.key, required this.livenessViewCreatedCallback});

  @override
  State<LivenessNativeView> createState() => _LivenessNativeViewState();
}

class _LivenessNativeViewState extends State<LivenessNativeView> {
  static const TAG = 'LivenessNativeView';

  @override
  Widget build(BuildContext context) {
    const String viewType = 'liveness_native_view';
    Map<String, dynamic> creationParams = <String, dynamic>{
      // "initString": "Move face to camera",
      // "normal": "Look forward",
      // "faceLeft": "Face left",
      // "faceRight": "Face right",
      // "faceUp": "Face up",
      // "faceDown": "Face down",
      // "blink": "Blink",
      // "sessionToken": "sessionToken"
      "color": "#CCCCCC",
      "faceUp": "Ngửa mặt",
      "faceDown": "Cúi mặt",
      "faceLeft": "Quay trái",
      "faceRight": "Quay phải",
      "blink": "Nháy mắt",
      "normal": "Nhìn thẳng",
      "initString": "Đưa khuôn mặt vào trong camera, giữ trong 3 giây",
      "sessionToken":
          "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYW0iOiJjMWM5N2E2MGU4ZmUiLCJpYXQiOjE2OTQ3NTYwNzEyNzMsImV4cCI6MTY5NDc1NjQzMTI3M30.z0ep_yDjxD5jCp8F_6wZLtF18DxI3AYryh6EKKaqBEE",
      "urlConfig": "https://dev-gateway.ekyc.dev/burma/sdk/config",
    };

    if (defaultTargetPlatform == TargetPlatform.android) {
      return AndroidView(
        viewType: viewType,
        layoutDirection: TextDirection.ltr,
        creationParams: creationParams,
        creationParamsCodec: const StandardMessageCodec(),
        onPlatformViewCreated: _onPlatformViewCreated,
      );
    } else {
      return UiKitView(
        viewType: viewType,
        layoutDirection: TextDirection.ltr,
        creationParams: creationParams,
        creationParamsCodec: const StandardMessageCodec(),
        onPlatformViewCreated: _onPlatformViewCreated,
      );
    }
  }

  void _onPlatformViewCreated(int id) {
    if (widget.livenessViewCreatedCallback == null) {
      return;
    }
    widget.livenessViewCreatedCallback(LivenessViewController(id));
  }
}