Flutter SDK API Reference
HydraCore Class APIs
SignUp
This API enables reporting of a SignUp (user registration) event to the SDK.
static Future<bool> signUp({
required HydraUserDetails userDetails,
Map<String, dynamic>? customData,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
userDetails | HydraUserDetails | required | Read more about this class here |
customData | Map<String, dynamic>? | optional | Custom attributes for analytics |
Returns: Future<bool>
indicating if sign up was successfully requested
Usage:
bool signUpResult = await HydraCore.signUp(
userDetails: userDetails,
);
Sign In
This API enables reporting of a SignIn event to the SDK.
static Future<bool> signIn({
required HydraUserDetails userDetails,
Map<String, dynamic>? customData,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
userDetails | HydraUserDetails | required | Read more about this class here |
customData | Map<String, dynamic>? | optional | Custom attributes for analytics |
Returns: Future<bool>
indicating if sign in was successfully requested
Usage:
bool signInResult = await HydraCore.signIn(
userDetails: userDetails,
);
Sign Out
This API enables reporting of a SignOut event to the SDK.
static Future<bool> signOut({
required String customerId,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
customerId | String | required | User's customer ID |
Returns: Future<bool>
indicating if sign out was successful
Usage:
bool signOutResult = await HydraCore.signOut(
customerId: "8888888888",
);
Update User
This API enables reporting of a user details update event to the SDK.
static Future<bool> updateUser({
required HydraUserDetails userDetails,
Map<String, dynamic>? customData,
List<Map<String, dynamic>>? subscriptions,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
userDetails | HydraUserDetails | required | Read more about this class here |
customData | Map<String, dynamic>? | optional | Custom attributes for analytics |
subscriptions | List<Map<String, dynamic>>? | optional | List of Subscriptions with channel, accountId, priority, type and sourcename |
Returns: Future<bool>
indicating if update was successfully requested
Usage:
bool updateUserResult = await HydraCore.updateUser(
userDetails: updatedUserDetails,
customData: {"Key" : "Value"},
subscriptions: [
{"channel": "channel1", "type": "topic1", "priority": 1},
],
);
Update Geo Config
This API enables reporting of a geo configuration update event to the SDK.
static Future<bool> updateGeoConfig({
required HydraGeoConfig config,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
config | HydraGeoConfig | required | Read more about this class here |
Returns: Future<bool>
indicating if geo config update was successful
Usage:
bool updateGeoConfigResult = await HydraCore.updateGeoConfig(
config: config,
);
Update User Push Preferences
This API enables reporting of a user push preferences update event to the SDK.
static Future<bool> updatePushPreferences({
required String customerId,
required HydraPushPreferences preferences,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
customerId | String | required | User's customer ID |
preferences | HydraPushPreferences | required | Read more about this class here |
Returns: Future<bool>
indicating if preferences update was successful
Usage:
bool result = await HydraCore.updatePushPreferences(
preferences: pushPreferences,
customerId: "8888888888",
);
Report custom user events
This API enables reporting of custom user events to the SDK.
static Future<bool> reportUserEvent({
required String eventName,
Map<String, dynamic>? attributes,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
eventName | String | required | Name of the event |
attributes | Map<String, dynamic>? | optional | Additional event data |
Returns: Future<bool>
indicating if event reporting was successful
Usage:
bool sendEventResult = await HydraCore.reportUserEvent(
eventName: "TestEvent",
attributes: {"Key" : "Value"},
);
HydraPushNotification class APIs
Get FCM Token
static Future<String> getFCMToken();
Returns: Future<String>
containing FCM token (throws error if unavailable)
Usage:
String fcmToken = await HydraPushNotification.getFCMToken();
Request Permission for Push notifications
static Future<bool> requestPermission();
Returns: Future<bool>
indicating if permission was granted
Usage:
bool granted = await HydraPushNotification.requestPermission();
HydraInbox class APIs
Get list of Hydra Notifications
static Future<List<HydraNotification>> getInboxMessages();
Returns: Future<List<HydraNotification>>
Usage:
List<HydraNotification> notifications = await HydraInbox.getInboxMessages();
Get Unread Hydra Notifications Count
static Future<int> getUnreadInboxMessagesCount();
Returns: Future<int>
with unread count
Usage:
int unreadNotificationCount = await HydraInbox.getUnreadInboxMessagesCount();
Mark a Hydra Notification as read
static Future<bool> markInboxMessageAsRead({
required HydraNotification notification,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
notification | HydraNotification | required | Notification to mark as read. The list of Hydra Notifications are obtained from here. |
Returns: Future<bool>
indicating success
Usage:
bool marked = await HydraInbox.markInboxMessageAsRead(notification: notification);
Delete a Hydra Notification
static Future<bool> deleteInboxMessage({
required HydraNotification notification,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
notification | HydraNotification | required | Notification to delete. The list of Hydra Notifications are obtained from here. |
Returns: Future<bool>
indicating success
Usage:
bool deleted = await HydraInbox.deleteInboxMessage(notification: notification);
Delete all Hydra Notifications
static Future<bool> deleteAllInboxMessages();
Returns: Future<bool>
indicating success
Usage:
bool deleted = await HydraInbox.deleteAllInboxMessages();
HydraInboxUI class APIs
Show In-Built Notification Center
static Future<void> showNotificationCenter();
Usage:
HydraInboxUI.showNotificationCenter();
Hide In-Built Notification Center if Showing
static Future<void> hideNotificationCenterIfShowing();
Usage:
await HydraInboxUI.hideNotificationCenterIfShowing();
HydraNativeEvent class APIs
Add event handler
static void addEventHandler(HydraNativeEventHandler handler);
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
handler | HydraNativeEventHandler | required | Handler instance |
Usage:
HydraNativeEvents.addEventHandler(handler);
Remove event handler
static void removeEventHandler(HydraNativeEventHandler handler);
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
handler | HydraNativeEventHandler | required | Handler instance |
Usage:
HydraNativeEvents.removeEventHandler(handler);
Remove all event handlers
static void removeAllEventHandlers();
Usage:
HydraNativeEvents.removeAllEventHandlers();
HydraNativeEventHandler class
class HydraNativeEventHandler {
void onTokenAvailable({required String token}) {}
void onHydraNotificationReceived({required HydraNotification notification}) {}
void onHydraNotificationClicked({HydraNotificationCTA? cta, HydraNotification? notification}) {}
void onHydraNotificationDismissed({required HydraNotification notification}) {}
void onHydraNotificationShown({required HydraNotification notification}) {}
void onNotificationCenterDismissed() {}
void onHydraSdkInitializationResult({required bool success, String? error}) {}
}
Callback Descriptions
- onTokenAvailable: New FCM token available
- onHydraNotificationReceived: Notification received
- onHydraNotificationClicked: Notification/CTA clicked
- onHydraNotificationDismissed: Notification dismissed
- onHydraNotificationShown: Notification shown
- onNotificationCenterDismissed: Notification center closed
- onHydraSDKInitializationResult: SDK initialization result
HydraCore Model Classes and Enumerations
HydraUserDetails
HydraUserDetails({
required this.customerId,
this.email,
this.phoneNumber,
this.firstName,
this.lastName,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
customerId | String | required | User identifier |
firstName | String? | optional | User's first name |
lastName | String? | optional | User's last name |
String? | optional | User's email | |
phoneNumber | String? | optional | User's phone number |
Usage:
HydraUserDetails userDetails = HydraUserDetails(
customerId: '8888888888',
firstName: 'FirstName',
lastName: 'LastName',
email: '[email protected]',
phoneNumber: '918888888888',
);
HydraGeoConfig
HydraGeoConfig({
required this.city,
required this.country,
required this.countryCode,
this.timezone,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
city | String | required | User's city |
country | String | required | User's country |
countryCode | String | required | Country code |
timezone | String? | optional | Timezone |
Usage:
HydraGeoConfig geoConfig = HydraGeoConfig(
city: "Bangalore",
country: "India",
countryCode: "IN",
timezone: "Asia/Kolkata",
);
HydraPushPreferences
HydraPushPreferences({
required this.promPushEnabled,
required this.transPushEnabled,
});
Parameters
Parameter | Type | Required/Optional | Description |
---|---|---|---|
promPushEnabled | bool | required | Promotional pushes |
transPushEnabled | bool | required | Transactional pushes |
Usage:
HydraPushPreferences pushPreferences = HydraPushPreferences(
promPushEnabled: false,
transPushEnabled: true,
);
HydraNotification Model Classes
HydraNotification Structure
class HydraNotification {
final String? cuid;
final String? scope;
final String? campaignId;
final String? variationId;
// ... (other properties)
final HydraNotificationGateway? gateway;
final HydraNotificationBody? body;
final HydraNotificationExpandedDetails? expandableDetails;
// ... (other properties)
}
HydraNotificationBody
class HydraNotificationBody {
final String? title;
final String? message;
final String? image;
final HydraNotificationCTA? cta;
}
HydraNotificationCTA
class HydraNotificationCTA {
final HydraNotificationCTAType? type;
final String? action;
final String? actionText;
}
HydraNotificationCTAType Enum
enum HydraNotificationCTAType {
external,
deepLink,
rating,
feedback,
appRating,
unknown,
}
HydraNotificationExpandedDetails
class HydraNotificationExpandedDetails {
final List<HydraNotificationCTA>? ctas;
final String? message;
final String? image;
final String? style;
}
HydraNotificationGateway Enum
enum HydraNotificationGateway {
fcm,
xiaomi,
unknown,
}
Updated 15 days ago