getUpsellWidget method
Widget
getUpsellWidget({
- required String trigger,
- PaywallEventHandlers? eventHandlers,
- Map<
String, dynamic> ? customPaywallTraits, - required Widget paywallNotShownReplacement,
override
Implementation
@override
Widget getUpsellWidget({
required String trigger,
PaywallEventHandlers? eventHandlers,
Map<String, dynamic>? customPaywallTraits,
required Widget paywallNotShownReplacement,
}) {
// No native view exists on platforms other than iOS/Android; bypass the
// availability check so UpsellViewForTrigger's unsupported-platform
// message surfaces instead of silently rendering paywallNotShownReplacement.
if (!Platform.isIOS && !Platform.isAndroid) {
return UpsellViewForTrigger(trigger: trigger);
}
_currentEventHandlers = eventHandlers;
return UpsellWrapperWidget(
trigger: trigger,
customPaywallTraits: _convertBooleansToMarkers(customPaywallTraits),
paywallNotShownReplacement: paywallNotShownReplacement,
availabilityChecker: () => _checkEmbeddedAvailability(trigger),
onFallbackOpened: (String? paywallUnavailableReason) async {
await methodChannel.invokeMethod<String?>(
fallbackOpenEventMethodName,
{
'trigger': trigger,
'viewType': 'embedded',
'paywallUnavailableReason': paywallUnavailableReason,
},
);
},
onFallbackClosed: () async {
await methodChannel.invokeMethod<String?>(
fallbackCloseEventMethodName,
{
'trigger': trigger,
'viewType': 'embedded',
},
);
},
);
}