getInitialNotificationAction method
- bool removeFromActionEvents = false,
Gets the notification action that launched the app, if any.
This method returns a Future that resolves to a ReceivedAction object
if the app was launched by a notification action, or null
if it wasn't.
The optional removeFromActionEvents
parameter is a boolean value that
indicates whether the same action should be prevented from being delivered
in the onActionMethod()
function, in case it hasn't already happened.
This method does not depend on the setListeners()
method being called
first, and can be used to retrieve the initial notification action even
before the app is fully initialized.
To prevent any delay in application initialization, you can use a timeout
with the returned Future to specify a maximum duration for the method to
wait for the initial notification action. If no action is received within
the timeout duration, the Future will resolve to null
. For example:
final initialAction = await getInitialNotificationAction()
.timeout(Duration(seconds: 5));
Implementation
@override
Future<ReceivedAction?> getInitialNotificationAction(
{bool removeFromActionEvents = false}) async {
dynamic returnedData = await methodChannel.invokeMethod(
CHANNEL_METHOD_GET_INITIAL_ACTION, removeFromActionEvents);
if (returnedData == null) return null;
Map<String, dynamic>? actionData = Map<String, dynamic>.from(returnedData);
ReceivedAction? receivedAction = ReceivedAction().fromMap(actionData);
return receivedAction;
}