initialize static method
Future<void>
initialize({
- PushRegisterHandler? onPushRegister,
- PushObjectHandler? onPushReceive,
- PushObjectHandler? onPushOpen,
- PushObjectHandler? onPushDismiss,
- PushButtonClickedHandler? onPushButtonClicked,
- PushCarouselHandler? onCarouselObjectSelected,
Registers push lifecycle callbacks and initialises the Flutter Method Channel.
Implementation
static Future<void> initialize({
PushRegisterHandler? onPushRegister,
PushObjectHandler? onPushReceive,
PushObjectHandler? onPushOpen,
PushObjectHandler? onPushDismiss,
PushButtonClickedHandler? onPushButtonClicked,
PushCarouselHandler? onCarouselObjectSelected,
}) async {
WidgetsFlutterBinding.ensureInitialized();
_instance._onPushRegister = onPushRegister ?? _instance._onPushRegister;
_instance._onPushReceive = onPushReceive ?? _instance._onPushReceive;
_instance._onPushOpen = onPushOpen ?? _instance._onPushOpen;
_instance._onPushDismiss = onPushDismiss ?? _instance._onPushDismiss;
_instance._onPushButtonClicked =
onPushButtonClicked ?? _instance._onPushButtonClicked;
_instance._onCarouselObjectSelected =
onCarouselObjectSelected ?? _instance._onCarouselObjectSelected;
_instance._channel.setMethodCallHandler((call) async {
final arguments = call.arguments;
switch (call.method) {
case _keyOnPushRegister:
final token =
(arguments as Map<dynamic, dynamic>)['pushToken'] as String? ??
'';
await _instance._onPushRegister?.call(token);
break;
case _keyOnPushReceive:
final push =
NetmeraPushObject.fromJson(arguments as Map<dynamic, dynamic>);
await _instance._onPushReceive?.call(push);
break;
case _keyOnPushOpen:
final push =
NetmeraPushObject.fromJson(arguments as Map<dynamic, dynamic>);
await _instance._onPushOpen?.call(push);
break;
case _keyOnPushDismiss:
final push =
NetmeraPushObject.fromJson(arguments as Map<dynamic, dynamic>);
await _instance._onPushDismiss?.call(push);
break;
case _keyOnPushButtonClicked:
final map = arguments as Map<dynamic, dynamic>;
final push = NetmeraPushObject.fromJson(map);
final clickedActionMap = map['clickedAction'];
final action = clickedActionMap != null
? NetmeraInteractiveAction.fromJson(
clickedActionMap as Map<dynamic, dynamic>)
: null;
await _instance._onPushButtonClicked?.call(push, action);
break;
case _keyOnCarouselObjectSelected:
final map = arguments as Map<dynamic, dynamic>;
final push = NetmeraPushObject.fromJson(map);
final carouselMap = map['carouselItem'];
final item = carouselMap != null
? NetmeraCarouselObject.fromJson(carouselMap)
: null;
await _instance._onCarouselObjectSelected?.call(push, item);
break;
}
});
await _instance._channel.invokeMethod(_keyInitService);
}