presentTransact method
Future<String>
presentTransact({
- required AtomicConfig configuration,
- required TransactEnvironment environment,
- AtomicPresentationStyleIOS? presentationStyleIOS,
- bool debug = false,
- AtomicInteractionHandler? onInteraction,
- AtomicDataRequestHandler? onDataRequest,
- AtomicAuthStatusUpdateHandler? onAuthStatusUpdate,
- AtomicTaskStatusUpdateHandler? onTaskStatusUpdate,
- AtomicLaunchHandler? onLaunch,
- AtomicCompletionHandler? onCompletion,
- AtomicCleanupHandler? onCleanup,
override
Present the Atomic Transact SDK
configConfiguration of the Transact SDK
Implementation
@override
Future<String> presentTransact({
required AtomicConfig configuration,
required TransactEnvironment environment,
AtomicPresentationStyleIOS? presentationStyleIOS,
bool debug = false,
AtomicInteractionHandler? onInteraction,
AtomicDataRequestHandler? onDataRequest,
AtomicAuthStatusUpdateHandler? onAuthStatusUpdate,
AtomicTaskStatusUpdateHandler? onTaskStatusUpdate,
AtomicLaunchHandler? onLaunch,
AtomicCompletionHandler? onCompletion,
AtomicCleanupHandler? onCleanup,
}) async {
final instanceId = _createInstanceId();
// Registered before the native call, so an event sent while Transact is
// being presented can't arrive before its handlers exist.
_transacts[instanceId] = _TransactHandlers(
onInteraction: onInteraction,
onDataRequest: onDataRequest,
onAuthStatusUpdate: onAuthStatusUpdate,
onTaskStatusUpdate: onTaskStatusUpdate,
onLaunch: onLaunch,
onCompletion: onCompletion,
onCleanup: onCleanup,
);
try {
await _channel.invokeMethod(
'presentTransact',
{
'instanceId': instanceId,
'configuration': configuration.toJson(),
'transactPath': environment.transactPath,
'apiPath': environment.apiPath,
'presentationStyleIOS': presentationStyleIOS?.name,
'pluginVersion': packageVersion,
'debug': debug,
},
);
} catch (_) {
// Nothing was presented, so no onCleanup will ever arrive for this id.
_transacts.remove(instanceId);
rethrow;
}
return instanceId;
}