How to implement background notifications with action buttons (Accept/Decline) in iOS Flutter app?

I am developing a Flutter app for food delivery (a multivendor e-commerce restaurant app).

In the vendor app (Android), I successfully implemented a background notification that stays active until the vendor responds with either Accept or Decline.

This works fine on Android, but I cannot get the same functionality working on iOS.

My requirements:

Vendor should receive a background notification.

The notification should include action buttons (Accept / Decline).

It should remain active until the vendor takes action.

My questions:

Is this possible to implement in iOS with Flutter?

If yes, what is the recommended way (e.g., firebase_messaging, flutter_local_notifications, flutter_foreground_task, or native iOS integration)?

Are there any iOS restrictions I should consider compared to Android background services?

I built this for Android using firebase_messaging + flutter_foreground_task + flutter_local_notifications.

On iOS, I tried setting up firebase_messaging and flutter_local_notifications, but I’m unable to keep the notification persistent with Accept/Decline action buttons.

I expected similar behavior to Android, but it seems iOS has more restrictions around background services and notification handling.

Dependencies I am using (relevant ones):


firebase_core: ^3.8.0

firebase_messaging: ^15.1.5

flutter_local_notifications: ^17.2.2

flutter_foreground_task: ^8.17.0

get: ^4.7.2

shared_preferences: ^2.3.2



There might be some misunderstanding of the terminology here on the iOS side.

On iOS background notifications means notifications that are not visible, but directly sent to the app, so it can process the notification in the background, if appropriate.

So, by definition background notifications cannot have action buttons, because they are not visible.

In any case, what you are describing seems to be regular notifications with Action Buttons.

Can't help you with how to do this in Flutter, but the Declaring your actionable notification types article explains how you would implement it using native APIs.

As for your persistency question, in iOS once you press an action button, the notification will be dismissed.

There is also the possibility to create a custom notification UI that could behave close to what you are asking, but I am not sure if that will match exactly what you are asking about.

Customizing the Appearance of Notifications explains the what and the how of this. Perhaps it will satisfy your requirements. But again, I couldn't help you with how this can be done in Flutter.

You may want to ask in Flutter support channels how these things can be implemented. Or perhaps someone in the developer community will know and can help explain.

How to implement background notifications with action buttons (Accept/Decline) in iOS Flutter app?
 
 
Q