initialize method

Future<void> initialize({
  1. MessageHandler? onPushRegister,
  2. MessageHandler? onPushReceive,
  3. MessageHandler? onPushOpen,
  4. MessageHandler? onPushDismiss,
  5. MessageHandler? onPushButtonClicked,
  6. MessageHandler? onCarouselObjectSelected,
})

This function sets push action callbacks and initializes Flutter Method Channel.

These callbacks are optional.

Implementation

Future<void> initialize({
  MessageHandler? onPushRegister,
  MessageHandler? onPushReceive,
  MessageHandler? onPushOpen,
  MessageHandler? onPushDismiss,
  MessageHandler? onPushButtonClicked,
  MessageHandler? onCarouselObjectSelected,
}) async {
  WidgetsFlutterBinding.ensureInitialized();

  _onPushRegister = onPushRegister ?? _onPushRegister;
  _onPushReceive = onPushReceive ?? _onPushReceive;
  _onPushOpen = onPushOpen ?? _onPushOpen;
  _onPushDismiss = onPushDismiss ?? _onPushDismiss;
  _onPushButtonClicked = onPushButtonClicked ?? _onPushButtonClicked;
  _onCarouselObjectSelected =
      onCarouselObjectSelected ?? _onCarouselObjectSelected;

  _channel.setMethodCallHandler((call) async {
    final arguments = call.arguments;
    switch (call.method) {
      case ON_PUSH_REGISTER:
        _onPushRegister?.call(arguments);
        break;
      case ON_PUSH_RECEIVE:
        _onPushReceive?.call(arguments);
        break;
      case ON_PUSH_RECEIVE_BACKGROUND:
        _onPushReceiveBackgroundHandler?.call(arguments);
        break;
      case ON_PUSH_OPEN:
        _onPushOpen?.call(arguments);
        break;
      case ON_PUSH_DISMISS:
        _onPushDismiss?.call(arguments);
        break;
      case ON_PUSH_BUTTON_CLICKED:
        _onPushButtonClicked?.call(arguments);
        break;
      case ON_CAROUSEL_OBJECT_SELECTED:
        _onCarouselObjectSelected?.call(arguments);
        break;
    }
  });

  await _channel.invokeMethod(INIT_SERVICE);
}