Arka plana alınmış bir uygulamaya test mesajı gönderme

FCM'yi kullanmaya başlamak için en basit kullanım alanını oluşturun: uygulama cihazın arka planındayken Bildirim oluşturucudan bir geliştirme cihazına test bildirimi mesajı göndermek. Bu sayfada, kurulumdan doğrulamaya kadar bunu başarmaya yönelik tüm adımlar listelenmiştir. Bu sayfada FCM için Flutter uygulaması oluşturduysanız daha önce tamamladığınız adımlar da ele alınabilir.

FCM eklentisini yükleyin

  1. Henüz yapmadıysanız Flutter için Firebase SDK'larını yükleyin ve başlatın.

  2. Flutter projenizin kök dizininden aşağıdaki komutu çalıştırarak eklentiyi yükleyin:

    flutter pub add firebase_messaging
    
  3. İşlem tamamlandığında Flutter uygulamanızı yeniden derleyin:

    flutter run
    

Kayıt jetonuna erişme

Belirli bir cihaza mesaj göndermek için cihazın kayıt jetonunu bilmeniz gerekir. Bu eğiticiyi tamamlamak için jetonu Bildirimler konsolundaki bir alana girmeniz gerekeceğinden, jetonu aldıktan sonra jetonu kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.

Bir uygulama örneği için geçerli kayıt jetonunu almak için getToken() yöntemini çağırın. Bildirim izni verilmediyse bu yöntem, kullanıcıdan bildirim izinleri ister. Aksi takdirde, jeton döndürür veya bir hata nedeniyle geleceği reddeder.

final fcmToken = await FirebaseMessaging.instance.getToken();

Test bildirimi mesajı gönder

  1. Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda, uzaktan bildirim almak için izin isteğini kabul etmeniz gerekir.

  2. Uygulamanın cihazda arka planda bulunduğundan emin olun.

  3. Firebase konsolunda Mesajlaşma sayfasını açın.

  4. Bu ilk mesajınızsa İlk kampanyanızı oluşturun'u seçin.

    1. Firebase Notification mesajları'nı ve ardından Create'i (Oluştur) seçin.
  5. Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.

  6. Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.

  7. Sağ bölmeden Test mesajı gönder'i seçin.

  8. FCM kayıt jetonu ekleyin etiketli alana, bu kılavuzun önceki bölümünde edindiğiniz kayıt jetonunu girin.

  9. Test et'i seçin.

Test et'i seçtikten sonra, hedeflenen istemci cihazın (uygulama arka planda çalışırken) bildirimi alması gerekir.

Uygulamanıza mesaj teslimiyle ilgili analiz için FCM raporlama kontrol paneline bakın. Bu kontrol panelinde, Apple ve Android cihazlarda gönderilen ve açılan mesaj sayısıyla birlikte Android uygulamalarına ilişkin "gösterimler" (kullanıcıların gördüğü bildirimler) verilerini kaydeder.

Etkileşimi işleme

Kullanıcılar bir bildirime dokunduğunda, hem Android'de hem de iOS'te varsayılan davranış, uygulamayı açmaktır. Uygulama sonlandırılırsa başlatılır, arka plandaysa ön plana getirilir.

Bir bildirimin içeriğine bağlı olarak, uygulama açıldığında kullanıcı etkileşimini yönetmek isteyebilirsiniz. Örneğin, bildirim kullanılarak yeni bir sohbet mesajı gönderildiyse ve kullanıcı bu mesajı seçerse uygulama açıldığında ilgili görüşmeyi açmak isteyebilirsiniz.

firebase-messaging paketi, bu etkileşimi yönetmek için iki yol sunar:

  1. getInitialMessage(): Uygulama, sonlandırılmış bir durumdan açılırsa bu yöntem, RemoteMessage içeren bir Future döndürür. Kullanıldıktan sonra RemoteMessage kaldırılır.
  2. onMessageOpenedApp: Uygulama arka plan durumundan açıldığında RemoteMessage yayınlayan bir Stream.

Kullanıcılarınıza sorunsuz bir deneyim sunmak için her iki senaryoyu da ele almanız gerekir. Aşağıdaki kod örneğinde bunun nasıl elde edilebileceği özetlenmiştir:

class Application extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _Application();
}

class _Application extends State<Application> {
  // In this example, suppose that all messages contain a data field with the key 'type'.
  Future<void> setupInteractedMessage() async {
    // Get any messages which caused the application to open from
    // a terminated state.
    RemoteMessage? initialMessage =
        await FirebaseMessaging.instance.getInitialMessage();

    // If the message also contains a data property with a "type" of "chat",
    // navigate to a chat screen
    if (initialMessage != null) {
      _handleMessage(initialMessage);
    }

    // Also handle any interaction when the app is in the background via a
    // Stream listener
    FirebaseMessaging.onMessageOpenedApp.listen(_handleMessage);
  }

  void _handleMessage(RemoteMessage message) {
    if (message.data['type'] == 'chat') {
      Navigator.pushNamed(context, '/chat',
        arguments: ChatArguments(message),
      );
    }
  }

  @override
  void initState() {
    super.initState();

    // Run code required to handle interacted messages in an async function
    // as initState() must not be async
    setupInteractedMessage();
  }

  @override
  Widget build(BuildContext context) {
    return Text("...");
  }
}

Etkileşimi nasıl ele alacağınız, uygulama kurulumunuza bağlıdır. Yukarıdaki örnekte, StatefulWidget kullanımına dair temel bir örnek gösterilmektedir.

Sonraki adımlar

Ön plandaki uygulamalara mesaj gönderme

Uygulamanız arka plandayken bildirim mesajlarını başarıyla gönderdikten sonra, ön plandaki uygulamalara ileti göndermeye başlamak için Flutter Uygulamasında Mesaj Alma bölümüne göz atın.

Bildirim mesajlarının ötesine geçin

Uygulamanıza başka daha gelişmiş davranışlar eklemek için sunucu uygulaması gerekir.

Ardından uygulama istemcinizde: