dispatchEvent static method
Implementation
static void dispatchEvent(MethodCall call) {
try {
NudgeCallbackData nudgeCallbackData = NudgeCallbackData(
"nudge_callback",
type: call.arguments['TYPE'] ?? '',
action: call.arguments['ACTION'] ?? '',
// method: call.arguments['METHOD'],
data: call.arguments['DATA'].runtimeType == String ||
call.arguments['DATA'] == null
? {'data': call.arguments['DATA'] ?? ''}
: call.arguments['DATA'].cast<String, dynamic>(),
);
if (nudgeCallbackData.action == "NUDGE_COMPONENT_CTA_CLICK") {
NLogger.i("NudgeCallbackManager: CTA Clicked");
if (nudgeCallbackData.data["TARGET"] != null &&
nudgeCallbackData.data["CLICK_TYPE"] == "DEEP_LINK") {
NLogger.i(
"NudgeCallbackManager: CTA Clicked - TARGET: ${nudgeCallbackData.data["TARGET"]}",
);
Future<void>.delayed(const Duration(milliseconds: 500), () {
// no await → background fire-and-forget
launchUrl(Uri.parse(nudgeCallbackData.data["TARGET"] ?? ""));
});
}
}
if (nudgeCallbackData.action == "INTERNAL_ERROR") {
NLogger.e(
"Nudge ran into an internal error: ${nudgeCallbackData.data}, disabling nudge.",
);
Nudge.getInstance().disableNudge(true);
}
for (var listener in _listeners) {
listener.onEvent(nudgeCallbackData);
}
} catch (e) {
NLogger.e(
'NudgeNativeCallbackManager: error: $e',
);
}
}