-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[firebase_messaging] Add support for handling messages in background for iOS #47
Comments
How about using the NotificationServiceExtension (native code) with firebase_messaging? |
Using Notification Service Extension is one way to do it, yes. Flutter is excellent framework that allows to build and ship beautiful UI in bizarre speed. However does this mean it provides everything we want (from our perspective)? No. Does this mean we have drop Flutter and use SwiftUI (buggy) or storyboards? No. We made decision to use Flutter for UI and we are handling pretty much all business logic there except when it comes to push notifications and some other minor features as well - this is what you are better of rolling your own. Implementing Notification Service Extension and making it work with Flutter is matter of a few hours and considering how many fail to do so is somewhat amusing but not shocking considering the entry level. We did use Notification Service Extension with Notification Content Extension for fancier notifications for some months but at the end we dropped it and moved to PushKit (w/ CallKit obviously) and rolled our own notification presenter logic which resulted us dropping both Notification Service and Content Extension. My advice for those who need to add push notifications support for Flutter - solve it on native side, you will thank yourself later. |
I did it and it is working well! |
Mind providing a gist on how you solved it? :) |
Just follow the steps bellow: 1 - Follow this tutorial to configure firebase_messaging Push notification with firebase cloud messaging(FCM) 2 - On XCode, create the NotificationServiceExtension to do the background work 3 - Use something like Postman or Curl to do a request like that:
|
Could you explain how to do that? can You give us a snipplets o something else?
|
I want to implement a background execution to save some notification information on my local DB. Notification Service Extension is the way to go? Now I'm trying to override "didReceiveRemoteNotification" on my AppDelegate class (inherited from FlutterAppDelegate) without sucess. ` override func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
But it's not working since the previous override (didFinishLaunchingWithOptions) is the only one that runs and the didReceiveRemoteNotification is not called when the app receives a push notification on background. |
You need to follow the steps I said. Use NotificationServiceExtension. If you need to communicate with your flutter app, use platform channels. |
I tried but I couldn't use the channel created on AppDelegate inside the NotificationServiceExtension target, and to create a channel I need a controller that needs the window from UIAplication. At least that's what I've found. |
FYI for anyone ending up here when trying to setup silent data notifications (a.k.a. content-available). The workarounds mentioned in this thread are not required for those kinds of notifications. If all you want is for your app to be able to receive key/value data and update some remote data in the background, you will be ok following something like this SO question: Correct me if I am wrong...
|
Yes I'm trying to set up a background execution when a data notification arrives. Using the silent notification I was able to execute when app on foreground or background but not when app was killed( which is the expected behavior from what I saw) then how can I handle for all the 3 cases? |
@eimermusic are you saying that the plugin currently supports receiving and processing silent pushes in the background on iOS? I have not been able to do that with the |
This seems like a pretty highly requested feature. I'm currently also struggling because of this missing feature. Do we have an estimation on when we can expect this? Also is there anyone that has been able to get around this? So handling silent notifications when app is in background or terminated on iOS. |
In the meantime. I've found that work is being done to address this in this PR #2016 However I've not been able to get that one to work for me. |
I have been able to get PR #2016 to work for me. Apparently it's hit and miss. Worth a shot if this issues means a dead end for the plugin for you. |
Did you succeed in this? I'm also trying hard to get silent content-available only push to reach my ios app and get some execution time while the app is in the background or terminated state. Anything I can do here? @michaelgobbers |
Hello,
|
Hey all, this is now supported in the current dev release, along with macOS platform support landing as well (See the migration guide doc for a full changelog and how to upgrade). For discussions/feedback around trying out this dev release please see #4023 - would love feedback. |
Based on upcoming implementation for handling messages in background for Android (see #38 ), the iOS platform deserves the same functionality.
Linked issues:
The text was updated successfully, but these errors were encountered: