Odbieranie wiadomości w aplikacjach w C++

Wybierz platformę: iOS+ Android Web Flutter Unity C++


Aby otrzymywać wiadomości wysyłane do klienta, każda aplikacja kliencka musi zaimplementować metody w interfejsie API firebase::messaging::Listener.

Zainicjuj FCM

Zanim zaczniesz używać FCM, aby uzyskać dostęp do tokena rejestracji lub otrzymywać wiadomości, musisz go zainicjować.

Aby zainicjować FCM, wywołaj ::firebase::messaging::Initialize i podaj obiekt ::firebase::App oraz implementację klasy ::firebase::messaging::Listener.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

Dostęp do tokena rejestracji

Przy pierwszym uruchomieniu aplikacji pakiet SDK FCM generuje token rejestracyjny dla instancji aplikacji klienckiej. Jeśli chcesz kierować reklamy na pojedyncze urządzenia lub tworzyć grupy urządzeń na potrzeby FCM, musisz uzyskać dostęp do tego tokena.

Wartość tokena możesz uzyskać za pomocą funkcji wirtualnej ::firebase::messaging::Listener::OnTokenReceived.

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

Odbieranie i obsługa wiadomości

Aby otrzymywać wiadomości, klasa Listener musi implementować funkcję wirtualną OnMessage.

Zastąp OnMessage

Zastępując metodę ::firebase::messaging::Listener::OnMessage, możesz wykonywać działania na podstawie otrzymanej wiadomości i pobierać dane wiadomości:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

Wiadomości mogą reprezentować różne rodzaje danych przychodzących. Najczęściej wiadomości są wysyłane do aplikacji po zainicjowaniu przez dewelopera. Do aplikacji są też wysyłane wiadomości reprezentujące zdarzenia wysłania wiadomości, zdarzenia błędów wysyłania wiadomości i zdarzenia usunięcia wiadomości. Te specjalne zdarzenia można odróżnić, sprawdzając pole Message::message_type.

Usunięto wiadomości

Wysyłane do aplikacji, gdy serwer FCM usuwa oczekujące wiadomości. Message::message_type będzie mieć wartość "deleted_messages". Wiadomości mogą zostać usunięte z tych powodów:

  1. Na serwerze FCM jest przechowywanych zbyt wiele wiadomości.

    Może się to zdarzyć, gdy serwery aplikacji wysyłają wiele niezwijanych wiadomości na serwery FCM, gdy urządzenie jest offline.

  2. Urządzenie nie było połączone z internetem od dłuższego czasu, a serwer aplikacji niedawno (w ciągu ostatnich 4 tygodni) wysłał do aplikacji na tym urządzeniu wiadomość.

    Zalecamy, aby po otrzymaniu tego wywołania aplikacja przeprowadziła pełną synchronizację z serwerem aplikacji.