formica_tracker 1.0.0
formica_tracker: ^1.0.0 copied to clipboard
Formica Tracker SDK bridge library for Android and iOS - Fraud detection and device intelligence
Tracker Flutter #
A Flutter plugin that provides a bridge to the native Tracker SDK for Android and iOS platforms.
Installation #
Add this to your package's pubspec.yaml file:
dependencies:
formica_tracker: ^0.0.6
Then run:
flutter pub add formica_tracker
Or run:
flutter pub get
Usage #
Import #
import 'package:formica_tracker/formica_tracker.dart';
Initialize #
Initialize the TrackerManager with your API credentials:
try {
await TrackerManager.initialize(
apiKey: 'your-api-key',
serviceUrl: 'https://your-service-url.com',
tenant: 'your-tenant-id',
);
} catch (e) {
print('Failed to initialize tracker: $e');
}
Check Initialization Status #
bool isInitialized = await TrackerManager.isInitialized();
print('Tracker initialized: $isInitialized');
TrackerManager Methods #
Event Tracking #
Trigger Custom Event (Async)
import 'dart:collection';
try {
HashMap<String, dynamic> eventData = HashMap<String, dynamic>();
eventData['key1'] = 'value1';
eventData['key2'] = 123;
await TrackerManager.triggerCustomEvent('eventName', eventData);
print('Event tracked successfully');
} catch (e) {
print('Failed to track event: $e');
}
Trigger Custom Event (Sync)
import 'dart:collection';
try {
HashMap<String, dynamic> eventData = HashMap<String, dynamic>();
eventData['key1'] = 'value1';
RequestConfig config = RequestConfig(/* your config */);
GenericResponse<TransactionSubmitResult> response =
await TrackerManager.triggerCustomEventSync('eventName', eventData, config);
if (response.isSuccess) {
print('Event tracked successfully: ${response.data}');
} else {
print('Event tracking failed: ${response.error}');
}
} catch (e) {
print('Failed to track sync event: $e');
}
User Defined Values #
Set User Defined Values
try {
await TrackerManager.setUserDefinedValues('userKey', 'userValue');
print('User defined values set successfully');
} catch (e) {
print('Failed to set user defined values: $e');
}
Get User Defined Values
try {
Map<String, dynamic> userValues = await TrackerManager.getUserDefinedValues();
print('User values: $userValues');
} catch (e) {
print('Failed to get user defined values: $e');
}
Native Event Listener #
Set Native Event Listener
try {
await TrackerManager.setNativeEventListener((Map<String, dynamic> event) {
print('Received native event: $event');
// Handle the event
});
print('Native event listener set successfully');
} catch (e) {
print('Failed to set native event listener: $e');
}
Remove Native Event Listener
try {
await TrackerManager.removeNativeEventListener();
print('Native event listener removed successfully');
} catch (e) {
print('Failed to remove native event listener: $e');
}
Example #
import 'package:flutter/material.dart';
import 'package:formica_tracker/formica_tracker.dart';
import 'dart:collection';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
initializeTracker();
}
Future<void> initializeTracker() async {
try {
await TrackerManager.initialize(
apiKey: 'your-api-key',
serviceUrl: 'https://your-service-url.com',
tenant: 'your-tenant-id',
);
bool isInitialized = await TrackerManager.isInitialized();
print('Tracker initialized: $isInitialized');
} catch (e) {
print('Failed to initialize tracker: $e');
}
}
Future<void> trackEvent() async {
try {
HashMap<String, dynamic> eventData = HashMap<String, dynamic>();
eventData['action'] = 'button_click';
eventData['timestamp'] = DateTime.now().millisecondsSinceEpoch;
await TrackerManager.triggerCustomEvent('user_interaction', eventData);
print('Event tracked successfully');
} catch (e) {
print('Failed to track event: $e');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Tracker Flutter Example')),
body: Center(
child: ElevatedButton(
onPressed: trackEvent,
child: Text('Track Event'),
),
),
),
);
}
}
Platform Support #
- ✅ Android
- ✅ iOS
Requirements #
- Flutter 3.3.0 or later
- Dart 3.8.1 or later
License #
This project is licensed under the terms specified in the LICENSE file.