presentUpsell method
Future<String?>
presentUpsell({
- required BuildContext context,
- required String trigger,
- PaywallEventHandlers? eventHandlers,
- Map<
String, dynamic> ? customPaywallTraits,
override
Presents view based on trigger
Implementation
@override
Future<String?> presentUpsell({
required BuildContext context,
required String trigger,
PaywallEventHandlers? eventHandlers,
Map<String, dynamic>? customPaywallTraits,
}) async {
_fallbackContext = context;
// Store current event handlers
_currentEventHandlers = eventHandlers;
try {
final result = await methodChannel.invokeMethod<String?>(
presentUpsellMethodName,
{
'trigger': trigger,
'customPaywallTraits': _convertBooleansToMarkers(customPaywallTraits),
},
);
return result;
} on PlatformException catch (e) {
log('[Helium] Unexpected present upsell error: ${e.message}');
_currentEventHandlers = null;
await methodChannel.invokeMethod<String?>(
fallbackOpenEventMethodName,
{
'trigger': trigger,
'viewType': 'presented',
'paywallUnavailableReason': 'bridgingError',
},
);
_showFallbackSheet(trigger);
return "Failed to present upsell: '${e.message}'.";
}
}