Arka planda çalışan bir uygulamaya test mesajı gönderme

FCM'ye başlamak için en basit kullanım örneğini oluşturun: Uygulama, cihazda arka planda çalışırken Bildirimler oluşturucusundan bir geliştirme cihazına bir test bildirim mesajı göndermek. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmak için gereken tüm adımları listeler — FCM için bir Flutter uygulaması kurduysanız zaten tamamlamış olduğunuz adımları kapsayabilir.

FCM eklentisini kurun

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

  2. Eklentiyi yüklemek için Flutter projenizin kökünden aşağıdaki komutu çalıştırın:

    flutter pub add firebase_messaging
    
  3. Tamamlandığında, Flutter uygulamanızı yeniden oluşturun:

    flutter run
    

Kayıt belirtecine erişin

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

Bir uygulama örneği için geçerli kayıt belirtecini almak için getToken() öğesini çağırın. Bildirim izni verilmemişse, bu yöntem kullanıcıdan bildirim izinlerini ister. Aksi takdirde, bir hata nedeniyle bir belirteç döndürür veya geleceği reddeder.

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

Test bildirim mesajı gönder

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

  2. Uygulamanın cihazda arka planda olduğ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 Bildirim mesajları'nı seçin ve Oluştur'u 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 belirteci ekle etiketli alana, bu kılavuzun bir önceki bölümünde edindiğiniz kayıt belirtecini girin.

  9. Test Et'i seçin.

Test öğesini seçtikten sonra, hedeflenen istemci cihaz (uygulama arka planda olacak şekilde) bildirimi almalıdır.

Uygulamanıza mesaj teslimi hakkında fikir edinmek için, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını ve Android uygulamaları için "gösterimler" (kullanıcılar tarafından görülen bildirimler) verilerini kaydeden FCM raporlama panosuna bakın.

Etkileşimi yönetme

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

Bir bildirimin içeriğine bağlı olarak, uygulama açıldığında kullanıcının etkileşimini siz yönetmek isteyebilirsiniz. Örneğin, bir bildirim kullanılarak yeni bir sohbet mesajı gönderilirse ve kullanıcı bunu seçerse, uygulama açıldığında belirli bir sohbeti açmak isteyebilirsiniz.

firebase-messaging paketi, bu etkileşimi işlemek için iki yol sağlar:

  1. getInitialMessage() : Uygulama sonlandırılmış bir durumdan açılırsa, bu yöntem bir RemoteMessage içeren bir Future döndürür. Tüketildiğinde, RemoteMessage kaldırılacaktır.
  2. onMessageOpenedApp : Uygulama bir arka plan durumundan açıldığında bir RemoteMessage gönderen bir Stream .

Kullanıcılarınız için sorunsuz bir deneyim sağlamak için her iki senaryoyu da ele almalısınız. Aşağıdaki kod örneği, bunun nasıl başarılabileceğini özetlemektedir:

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 aldığınız, uygulama kurulumunuza bağlıdır. Yukarıdaki örnek, bir StatefulWidget kullanmanın temel bir örneğini gösterir.

Sonraki adımlar

Ön plandaki uygulamalara mesaj gönder

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

Bildirim mesajlarının ötesine geçin

Uygulamanıza başka, daha gelişmiş davranışlar eklemek için bir sunucu uygulamasına ihtiyacınız olacak.

Ardından, uygulama istemcinizde: