docs(doc): add foreground push notification

This commit is contained in:
Salvatore Giordano
2021-08-30 11:20:41 +02:00
parent 4dd574e364
commit bf1ca1ba49
@@ -187,8 +187,33 @@ StreamChat(
As you can see we generate a local notification whenever a message.new or notification.message_new event is received.
### Foreground notifications
Sometimes you want to show a notification when the app is in the foreground.
For example, when you're typing a message in a channel and you receive a new message from someone in another channel, you want to get notified about it.
Even in this case you can use the `flutter_local_notifications` package to show a notification.
You need to listen for new events using `StreamChatClient.on` and handle them accordingly.
Here we're checking if the event is a `message.new` or `notification.message_new` event, and if the message is from a different user than the current user. In that case we'll show a notification.
```dart
client.on(
EventType.messageNew,
EventType.notificationMessageNew,
).listen((event) {
if (event.message?.user?.id == client.state.currentUser?.id) {
return;
}
showLocalNotification(event, client.state.currentUser!.id, context);
});
```
:::note
Using `flutter_local_notifications` is a great way to implement notifications while the is in foreground too! You can generate a local notification listening to events using the method `streamChatClient.on()` and react to the events you want.
You should also check that the channel of the message is different than the channel in foreground.
How you can do this depends on your app infrastructure and how you handle navigation.
Take a look at the [Stream Chat v1 sample app](https://github.com/GetStream/flutter-samples/blob/main/packages/stream_chat_v1/lib/home_page.dart#L11) to see how we're doing it over there.
:::
### Saving notification messages to the offline storage