trustchex_flutter_sdk 1.503.1 copy "trustchex_flutter_sdk: ^1.503.1" to clipboard
trustchex_flutter_sdk: ^1.503.1 copied to clipboard

Identity verification and face authentication SDK with document scanning, liveness detection, NFC/eID reading, and biometric technology for Flutter apps.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:trustchex_flutter_sdk/trustchex_flutter_sdk.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  // MASAK 4/C(1)(e) geolocation needs no app-side setup: the SDK captures a
  // coarse fix natively (iOS Core Location / Android LocationManager) when a
  // workflow step enables collectGeolocation. The host only declares the OS
  // permission strings (see Info.plist / AndroidManifest.xml).
  runApp(const TrustchexExampleApp());
}

class TrustchexExampleApp extends StatelessWidget {
  const TrustchexExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Trustchex SDK Example',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
            seedColor: const Color.fromARGB(255, 14, 11, 11)),
        useMaterial3: true,
        scaffoldBackgroundColor: Colors.white,
      ),
      localizationsDelegates: AppLocalizations.localizationsDelegates,
      supportedLocales: AppLocalizations.supportedLocales,
      home: const ExampleHomeScreen(),
    );
  }
}

class ExampleHomeScreen extends StatefulWidget {
  const ExampleHomeScreen({super.key});

  @override
  State<ExampleHomeScreen> createState() => _ExampleHomeScreenState();
}

class _ExampleHomeScreenState extends State<ExampleHomeScreen> {
  @override
  Widget build(BuildContext context) {
    return TrustchexView(
      baseUrl: 'https://app.trustchex.com',
      branding: const TrustchexBranding(
        primaryColor: Colors.black,
        secondaryColor: Color(0xFFCCCCCC),
        tertiaryColor: Colors.red,
      ),
      locale: TrustchexLocale.en,
      enableAnalytics: true,
      isDebugMode: false,
      onDocumentRead: (result) {
        debugPrint('=== onDocumentRead ===');
        debugPrint('documentType: ${result.document.documentType.name}');
        debugPrint('issuingCountry: ${result.document.issuingCountry}');
        debugPrint('nationality: ${result.document.nationality}');
        debugPrint('documentNumber: ${result.document.documentNumber}');
        debugPrint('dateOfBirth: ${result.document.dateOfBirth}');
        debugPrint('dateOfExpiry: ${result.document.dateOfExpiry}');
        debugPrint('sex: ${result.document.sex.name}');
        debugPrint('rawLast: ${result.name.rawLast}  rawFirst: ${result.name.rawFirst}');
        debugPrint('displayLast: ${result.name.displayLast}  displayFirst: ${result.name.displayFirst}');
        debugPrint('nameSource: ${result.name.source.name}');
        debugPrint('hasFace: ${result.face != null}');
        debugPrint('======================');
      },
      onCompleted: () {},
      onError: (error) {
        ScaffoldMessenger.of(context).showSnackBar(
          SnackBar(
            content: Text('Error: $error'),
            backgroundColor: Colors.red,
          ),
        );
      },
    );
  }
}