| Wybierz platformę: | iOS+ Android Web Flutter Unity C++ |
Aby otrzymywać wiadomości wysyłane z serwera, każda aplikacja kliencka musi zaimplementować metody
w interfejsie API
firebase::messaging::Listener.
Inicjowanie FCM
Aby móc używać FCM do uzyskiwania dostępu do tokena rejestracji lub odbierania wiadomości, musisz zainicjować tę usługę.
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);
Uzyskiwanie dostępu do tokena rejestracji
Przy pierwszym uruchomieniu aplikacji pakiet SDK FCM generuje token rejestracji 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ą
::firebase::messaging::Listener::OnTokenReceived
funkcji wirtualnej.
void OnTokenReceived(const char* token) {
LogMessage("The registration token is `%s`", token);
// TODO: If necessary send token to application server.
}
Odbieranie i obsługiwanie wiadomości
Aby odbierać wiadomości, klasa Listener musi implementować funkcję wirtualną
OnMessage.
Zastępowanie OnMessage
Zastępując metodę ::firebase::messaging::Listener::OnMessage,
możesz wykonywać działania na podstawie otrzymanej wiadomości i pobierać jej
dane:
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. Wiadomości są też wysyłane do aplikacji w celu reprezentowania zdarzeń wysłania wiadomości, zdarzeń błędów wysyłania wiadomości i zdarzeń usunięcia wiadomości. Te specjalne zdarzenia można odróżnić, sprawdzając pole Message::message_type.
Usunięte wiadomości
Wysyłane do aplikacji, gdy serwer FCM usunie oczekujące wiadomości.
Message::message_type będzie mieć wartość "deleted_messages". Wiadomości mogą zostać usunięte z tych powodów:
Zbyt wiele wiadomości przechowywanych na serwerze FCM.
Może się to zdarzyć, gdy serwery aplikacji wysyłają do serwerów FCM wiele wiadomości, których nie można zwinąć , a urządzenie jest offline.
Urządzenie nie łączyło się z internetem przez długi czas, a serwer aplikacji niedawno (w ciągu ostatnich 4 tygodni) wysłał wiadomość do aplikacji na tym urządzeniu.
Po otrzymaniu tego wywołania zalecamy, aby aplikacja przeprowadziła pełną synchronizację z serwerem aplikacji.