IOSPush constructor

IOSPush(
  1. AirshipModule module
)

Implementation

IOSPush(AirshipModule module) : _module = module {
  if (Platform.isIOS) {
    _module
        .getEventStream("com.airship.flutter/event/override_presentation_options")
        .listen((event) async {
          print("Received override_presentation_options event: $event");
      try {
        final payload = PushPayload.fromJson(event['pushPayload']);
        final requestId = event['requestId'] as String;

        if (presentationOverridesCallback != null) {
          try {
            final result = await presentationOverridesCallback!.call(payload);
            final options = result?.map((e) => e.name).toList();
            await _module.channel.invokeMethod(
                'push#ios#overridePresentationOptions',
                {'requestId': requestId, 'options': options});
          } catch (error, stack) {
            print("Error in presentationOverridesCallback: $error\n$stack");
            _module.channel.invokeMethod(
                'push#ios#overridePresentationOptions',
                {'requestId': requestId, 'options': null});
          }
        }
      } catch (e, st) {
        print("Failed to process push_received event: $e\n$st");
      }
    });
  }
}