Truv Flutter SDK
Integrate Truv Bridge into your Flutter app.
Overview
- Installation — pub.dev setup for iOS and Android
- Bridge — embed Truv Bridge and handle events
- Order — embed a Truv Order and handle events
See also:
- Package on pub.dev — SDK on pub.dev
- Demo app on GitHub — runnable sample app where you can try Bridge and Order with your own keys and explore the integration code
Installation
Run the following command in your project directory:
flutter pub add truv_flutterBridge
Use TruvBridge to embed Truv Bridge as a full-screen verification flow.
Usage
import 'package:flutter/widgets.dart';
import 'package:truv_flutter/truv_event.dart';
import 'package:truv_flutter/truv_flutter.dart';
class BridgeScreen extends StatelessWidget {
final String bridgeToken;
const BridgeScreen({super.key, required this.bridgeToken});
@override
Widget build(BuildContext context) {
return TruvBridge(
bridgeToken: bridgeToken,
onEvent: (TruvEvent event) {
switch (event) {
case TruvEventLoad():
// Bridge finished loading
break;
case TruvEventClose():
// User closed the Bridge
break;
case TruvEventSuccess(:final publicToken, :final metadata):
// Called when the Bridge closes after a successful task.
// publicToken — use this to retrieve data server-side.
// metadata.taskId — the task identifier.
break;
case TruvEventEvent(:final eventType, :final payload):
// Lifecycle event. For the full list of event types and
// their payloads, see:
// https://docs.truv.com/docs/event-reference-for-truv-bridge#onevent-types
break;
case TruvEventError():
// An error occurred in the Bridge
break;
}
},
);
}
}Order
Use TruvOrder to embed an Order — a customizable verification workflow that supports multiple data sources and product types.
Usage
import 'package:flutter/widgets.dart';
import 'package:truv_flutter/truv_event.dart';
import 'package:truv_flutter/truv_flutter.dart';
class OrderScreen extends StatelessWidget {
final String bridgeToken;
const OrderScreen({super.key, required this.bridgeToken});
@override
Widget build(BuildContext context) {
return TruvOrder(
bridgeToken: bridgeToken,
onOrderEvent: (TruvOrderBridgeEvent event) {
switch (event) {
case TruvOrderBridgeLoad():
// Order page finished loading
break;
case TruvOrderBridgeClose():
// User closed the Order
break;
case TruvOrderBridgeSuccess():
// A task within the Order completed successfully.
// The Order is still open at this point — it may show
// a success screen or a self-certification screen
// depending on the configuration.
break;
case TruvOrderBridgeCompleted():
// The entire Order is complete (all tasks finished)
break;
}
},
onBridgeEvent: (TruvEventEvent event) {
// Fired when the user interacts with the Bridge for a
// sub-order (task) within the Order.
// Equivalent to TruvBridge onEvent.
// See: https://docs.truv.com/docs/event-reference-for-truv-bridge#onevent-types
},
);
}
}Updated 5 days ago