onMessage
- Flutter kursu
- İleri seviye
- Ders 28/69
- 4 dk
onMessage ile ön planda bildirim yakalamayı öğrenirsin.
onMessage akışı
onMessage akışı, uygulama ön plandayken gelen bildirimleri yakalar. Bu akış bir Stream<RemoteMessage> döndürür ve listen ile dinlenir. Ön planda bildirim geldiğinde snackbar veya dialog göstermek için kullanılır.
messaging.onMessage.listen((message) {
print(message.title);
});RemoteMessage sınıfı
RemoteMessage, gelen bildirimin verilerini tutan sınıftır. title, body ve data alanları üzerinden bildirim içeriğine erişilir. data alanı özel anahtar-değer çiftleri taşır.
messaging.onMessage.listen((message) {
print(message.data['key']);
});Uygulama onMessage akışını dinle
Messaging örneğini al, onMessage akışını listen ile dinle ve message.title'ı yazdır. Dinlemeye başladıktan sonra 10 milisaniye bekle.
Başlangıç kodu
class RemoteMessage {
final String title;
RemoteMessage(this.title);
}
class FirebaseMessaging {
static final FirebaseMessaging instance = FirebaseMessaging._();
FirebaseMessaging._();
Stream<RemoteMessage> get onMessage => Stream.value(RemoteMessage('Merhaba'));
}
void main() async {
// onMessage akışını dinle
// title yazdır
}Örnek çözüm
class RemoteMessage {
final String title;
RemoteMessage(this.title);
}
class FirebaseMessaging {
static final FirebaseMessaging instance = FirebaseMessaging._();
FirebaseMessaging._();
Stream<RemoteMessage> get onMessage => Stream.value(RemoteMessage('Merhaba'));
}
void main() async {
FirebaseMessaging.instance.onMessage.listen((message) {
print(message.title);
});
await Future.delayed(Duration(milliseconds: 10));
}Beklenen çıktı
Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 onMessage akışı ne zaman olay yayar?
- Cihaz açıldığında
- Uygulama ön plandayken bildirim gelince Doğru cevap
- Yalnızca başlatma sırasında
- Yalnızca uygulama kapalıyken
Açıklama: onMessage yalnızca uygulama ön plandayken bildirim gelince olay yayar; arka planda veya kapalıyken tetiklenmez.
2 onMessage dinle
FirebaseMessaging.instance.____.listen((message) {
print(message.title);
});
FirebaseMessaging.instance.onMessage.listen((message) {
print(message.title);
});
Açıklama: onMessage bir getter'dır ve Stream döndürür; parantez gerektirmez, doğrudan .listen ile dinlenir.
3 onMessage parçaları
| Kavram | Anlamı |
|---|---|
onMessage |
Ön plan akışı |
RemoteMessage |
Bildirim verisi |
listen |
Akışı dinler |
foreground |
Uygulama ön planda |