Zixflow Core
// Initialize SDK
await Zixflow.initialize(config: ZixflowConfig);
// Get instance
Zixflow.instance
// Identify user
Zixflow.instance.identify({
required String userId,
Map<String, dynamic>? traits,
});
// Track event
Zixflow.instance.track({
required String name,
Map<String, dynamic>? properties,
int? timestamp,
});
// Track screen
Zixflow.instance.screen({
required String title,
Map<String, dynamic>? properties,
});
// Set profile attributes
Zixflow.instance.setProfileAttributes({
required Map<String, dynamic> attributes,
});
// Set device attributes
Zixflow.instance.setDeviceAttributes({
required Map<String, dynamic> attributes,
});
// Clear user identification
Zixflow.instance.clearIdentify();
// Register device token
Zixflow.instance.registerDeviceToken({
required String deviceToken,
});
ZixflowConfig
ZixflowConfig({
required String apiKey,
LogLevel? logLevel,
bool? autoTrackDeviceAttributes,
bool? trackApplicationLifecycleEvents,
ScreenView? screenViewUse,
String? apiHost,
String? cdnHost,
int? flushAt,
int? flushInterval,
InAppConfig? inAppConfig,
PushConfig? pushConfig,
LocationConfig? locationConfig,
});
In-App Messaging
// Subscribe to events
Zixflow.inAppMessaging.subscribeToEventsListener(handler);
// Inbox management
final inbox = Zixflow.inAppMessaging.inbox;
await inbox.getMessages();
inbox.messages().listen((messages) { /* ... */ });
inbox.markMessageOpened(message);
inbox.markMessageUnopened(message);
inbox.deleteMessage(message);
inbox.openMessage(message);
Location
// Track location
Zixflow.location.trackLocation({
required double latitude,
required double longitude,
});