Wysyłanie powiadomień push na Androida za pomocą Firebase Cloud Messaging

Autor: Louise Ward
Data Utworzenia: 4 Luty 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Powiadomienia Domoticz - Najprościej  jak się da czyli Firebase Cloud Messaging FCM (Dawniej GCM)
Wideo: Powiadomienia Domoticz - Najprościej jak się da czyli Firebase Cloud Messaging FCM (Dawniej GCM)

Zawartość


Chociaż wykracza to poza zakres tego samouczka, możesz także użyć FCM do wysyłania powiadomień, w których FCM otrzymuje wiadomość od aplikacji klienckiej lub do powiadamiania aplikacji, gdy będą dostępne nowe dane do pobrania. W ten sposób możesz zapewnić komunikację między serwerem aplikacji a aplikacją kliencką tylko wtedy, gdy jest to konieczne, co jest znacznie wydajniejsze niż aplikacja kliencka kontaktująca się z serwerem w regularnych odstępach czasu, co może powodować, że będą dostępne nowe dane.

Ponieważ FCM jest częścią Firebase, gra również dobrze z innymi usługami Firebase. Po opanowaniu podstaw FCM możesz użyć Testowania A / B, aby określić, które powiadomienia są najbardziej skuteczne, lub użyć Prognoz Firebase, aby zastosować zaawansowane uczenie maszynowe do wszystkich danych analitycznych generowanych z różnych kampanii FCM.

FCM obsługuje dwa typy s:

  • Powiadomienie s. Aplikacja kliencka będzie zachowywać się inaczej w zależności od tego, czy będzie w tle, czy na pierwszym planie, gdy otrzyma FCM. Jeśli Twoja aplikacja jest w tle, Firebase SDK automatycznie przetworzy ją i wyświetli jako powiadomienie na pasku zadań urządzenia. Ponieważ system Android tworzy powiadomienie dla Ciebie, jest to jeden z najprostszych sposobów wysyłania powiadomień push do użytkowników. Jeśli aplikacja otrzyma FCM, gdy jest na pierwszym planie, oznacza to system przyzwyczajenie obsłuż to powiadomienie automatycznie, pozostawiając Ci przetworzenie wywołania zwrotnego onReceived () w Twojej aplikacji. Będziemy badać onReceived () w dalszej części tego samouczka, ale na razie pamiętaj, że jeśli aplikacja otrzyma jakiś czas na pierwszym planie, domyślnie nie zostanie wyświetlona użytkownikowi.
  • Dane s. W przeciwieństwie do powiadomień, możesz użyć danych, aby wysłać niestandardowe elementy danych do aplikacji klienta. Jednak FCM nakłada limit 4KB na te dane, więc jeśli ładowność przekracza 4KB, musisz pobrać dodatkowe dane za pomocą WorkManager lub interfejsu API JobScheduler.

W tym samouczku skupimy się na powiadomieniach.


Co z Google Cloud Messaging?

Jeśli używasz interfejsów API serwera i klienta Google Cloud Messaging (GCM), masz złe wieści: ta usługa została już wycofana, a Google planuje wyłączyć „większość” usług GCM w kwietniu 2019 r. Jeśli nadal jesteś używając GCM, powinieneś rozpocząć migrację swoich projektów do FCM już teraz i musisz zakończyć migrację do kwietnia 2019 r.

Dodanie Firebase do projektu Android

Zobaczmy, jak łatwo jest dodać podstawową obsługę FCM do aplikacji, a następnie użyć go do wysyłania powiadomień push do użytkowników.

Ponieważ FCM jest usługą Firebase, musisz dodać Firebase do swojej aplikacji:

  • Udaj się do konsoli Firebase.
  • Wybierz „Dodaj projekt” i nadaj projektowi nazwę.
  • Przeczytaj regulamin. Jeśli chcesz kontynuować, wybierz „Akceptuję…”, a następnie „Utwórz projekt”.
  • Wybierz „Dodaj Firebase do swojej aplikacji na Androida”.
  • Wprowadź nazwę pakietu swojego projektu, a następnie kliknij „Zarejestruj aplikację”.
  • Wybierz „Pobierz google-services.json”.
  • W Android Studio przeciągnij i upuść plik google-services.json do katalogu „aplikacji” swojego projektu.
  • Otwórz plik build.gradle na poziomie projektu i dodaj następujące elementy:

classpath com.google.gms: usługi Google: 4.0.1

  • Otwórz plik build.gradle na poziomie aplikacji i dodaj wtyczkę usług Google oraz zależności dla Firebase Core i FCM:

// Dodaj wtyczkę usług Google // zastosuj wtyczkę: com.google.gms.google-services……… zależności {implementacja plikuTree (reż: libs, include:) // Dodaj Firebase Core // implementacja com.google.firebase: firebase-core: 16.0.1 // Dodaj implementację FCM // com.google.firebase: firebase-messaging: 17.3.4

  • Po wyświetleniu monitu zsynchronizuj zmiany.
  • Następnie musisz poinformować konsolę Firebase, że pomyślnie dodałeś Firebase do swojego projektu. Zainstaluj aplikację na fizycznym smartfonie lub tablecie z Androidem lub urządzeniu wirtualnym Android (AVD).
  • Z powrotem w konsoli Firebase wybierz „Uruchom aplikację, aby zweryfikować instalację”.
  • Gdy Firebase wykryje Twoją aplikację, zobaczysz „Gratulacje”. Wybierz „Przejdź do konsoli”.

Wysyłanie pierwszego powiadomienia wypychanego za pomocą Firebase

I to wszystko! Możesz teraz wysłać powiadomienie push do użytkowników, a powiadomienie to pojawi się na pasku zadań urządzenia (na razie załóżmy, że Twoja aplikacja nie jest na pierwszym planie, gdy zostanie dostarczona).


Powiadomienia FCM tworzysz za pomocą programu Notifications Composer, który jest dostępny za pośrednictwem konsoli Firebase:

  • Upewnij się, że aplikacja jest zainstalowana i działa w tle, a urządzenie ma aktywne połączenie z Internetem.
  • W konsoli Firebase wybierz „Cloud Messaging” z menu po lewej stronie.

  • Wybierz „Wyślij swój pierwszy”.
  • Podaj swój tytuł i tekst, a następnie kliknij „Dalej”.

  • Otwórz menu „Wybierz aplikację” i wybierz aplikację z listy. Ta sekcja zawiera także niektóre zaawansowane opcje, których możesz użyć do tworzenia ukierunkowanych powiadomień, w oparciu o takie czynniki, jak wersja aplikacji, lokalizacja urządzenia i czas ostatniego połączenia użytkownika z aplikacją. Nie będziemy używać żadnej z tych opcji w naszym powiadomieniu testowym, ale jeśli chcesz zobaczyć, co jest dostępne, wybierz „i…” i przejrzyj kolejne menu.

  • Po zakończeniu edycji tej sekcji kliknij „Dalej”.
  • Zakładając, że chcesz wysłać to natychmiast, otwórz menu „Wyślij do uprawnionych użytkowników” i wybierz „Teraz”.
  • W prawym dolnym rogu ekranu kliknij „Publikuj”.
  • Sprawdź wszystkie informacje w kolejnym oknie podręcznym, a jeśli zechcesz kontynuować, wybierz „Publikuj”.

Po kilku chwilach wszystkie docelowe urządzenia klienckie powinny otrzymać to powiadomienie na pasku zadań.

Przez większość czasu powiadomienia FCM będą dostarczane natychmiast, ale czasami może to potrwać kilka minut, więc nie panikuj, jeśli powiadomienie zostanie opóźnione.

Ustalanie niektórych celów: zdarzenia konwersji powiadomień

Tworząc powiadomienie, zwykle masz na myśli cel - czy to odwiedzenie użytkowników do Twojej aplikacji, przekonanie ich, by wybrali się na zakup w aplikacji, czy po prostu otwarcie powiadomienia.

Możesz przypisać cel do powiadomienia za pomocą Kompozytora powiadomień, a następnie śledzić skuteczność tego powiadomienia na pulpicie raportowania FCM.

Aby ustawić cel, kliknij, aby rozwinąć sekcję „Zdarzenia konwersji” Nawigatora, a następnie otwórz towarzyszącą listę rozwijaną i wybierz jedno z dostępnych zdarzeń konwersji.

Czy Twoje powiadomienie zakończyło się sukcesem?

Po wysłaniu powiadomienia możesz przeanalizować jego działanie w panelu raportowania FCM, który powinien się ładować automatycznie za każdym razem, gdy wysyłasz nowe, lub możesz uzyskać bezpośredni dostęp do pulpitu.

Nawet jeśli nie określiłeś żadnych wyraźnych celów konwersji, nadal możesz sprawdzić, czy użytkownicy reagują na Twoje powiadomienia, porównując liczbę dostarczonych s z liczbą otwartych.

Możesz również wybrać dowolną z tej listy, aby zobaczyć dane wysyłania, otwierania i konwersji w postaci wykresu. Jeśli określisz jakieś cele konwersji, w tym miejscu znajdziesz również statystyki dotyczące tych celów.

Co jeśli moja aplikacja jest na pierwszym planie?

Powiadomienia FCM zachowują się inaczej w zależności od stanu aplikacji klienckiej.

Domyślnie aplikacja nie wyświetla żadnych otrzymanych FCM, gdy jest na pierwszym planie, więc kiedy wyślesz, nie ma gwarancji, że użytkownicy faktycznie widzieć to

Aby działać na podstawie aplikacji, którą otrzymuje aplikacja, gdy jest ona w pierwszoplanowy, musisz rozszerzyć FirebaseMessagingService, zastąpić metodę onReceived, a następnie pobrać zawartość za pomocą getNotification lub getData, w zależności od tego, czy pracujesz z danymi, powiadomieniami, czy też z obydwoma.

Utwórz nową klasę Java o nazwie „MyFirebaseMessagingService”, a następnie dodaj:

klasa publiczna MyFirebaseMessagingService rozszerza FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Musisz także utworzyć obiekt powiadomienia. To Twoja szansa na dostosowanie powiadomienia, na przykład wybranie dźwięku, który powinien być odtwarzany za każdym razem, gdy użytkownik otrzyma to powiadomienie, lub zastosowanie niestandardowej ikony powiadomienia. Musisz także pobrać treść z danych lub powiadomienia, na przykład:

NotifiedCompat.Builder setStyle (new NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager powiadomieniaManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); powiadomienie Manager.notify (0, powiadomienieBuilder.build ()); }}

Po utworzeniu usługi nie zapomnij dodać jej do manifestu:

Teraz, za każdym razem, gdy aplikacja otrzyma FCM, gdy jest na pierwszym planie, zostanie dostarczona do modułu obsługi onReceived (), a następnie aplikacja podejmie określone przez Ciebie działanie, takie jak opublikowanie powiadomienia lub aktualizacja treści aplikacji.

Bardziej angażujące powiadomienia: Kierowanie do użytkowników

Do tej pory wysyłaliśmy to samo powiadomienie do całej bazy użytkowników, ale powiadomienia są o wiele bardziej angażujące, gdy są skierowane do określonych użytkowników.

Za pomocą Kompozytora powiadomień można wysyłać różne powiadomienia do różnych części bazy użytkowników. Udaj się do kompozytora powiadomień i utwórz powiadomienie jak zwykle, ale w sekcji „Cel” kliknij „i”. To daje dostęp do nowego menu rozwijanego zawierającego następujące opcje:

  • Wersja. Pozwala to na celowanie lub wykluczanie urządzeń z określonymi wersjami aplikacji. Na przykład możesz wysyłać powiadomienia do osób korzystających z darmowej wersji, zachęcając ich do przejścia na wersję Premium aplikacji.
  • Język. Możesz użyć tego ustawienia do kierowania lub wykluczania różnych języków i ustawień regionalnych obsługiwanych przez twoją aplikację, takich jak tworzenie powiadomień dostosowanych do różnych stref czasowych lub języków.
  • Odbiorcy użytkowników. Umożliwia to kierowanie lub wykluczanie różnych grup odbiorców. Możesz na przykład użyć tego ustawienia, aby kusić osoby, które mają historię robienia zakupów w aplikacji, oferując im zniżkę lub zwracając ich uwagę na wszystkie niesamowite nowe produkty w aplikacji, które właśnie wydałeś.
  • Właściwość użytkownika. Jeśli skonfigurujesz Firebase Analytics, będziesz mieć dostęp do szeregu informacji o swoich odbiorcach za pośrednictwem właściwości użytkownika. Możesz użyć tych właściwości w połączeniu z FCM, aby wysyłać ukierunkowane powiadomienia do bardzo określonych sekcji Twojej bazy użytkowników, takich jak osoby w wieku 25-34 lata, które są zainteresowane sportem.
  • Prognoza. Jeśli skonfigurujesz Prognozy Firebase, możesz kierować reklamy do użytkowników na podstawie prawdopodobieństwa, że ​​będą oni angażować się w określone zachowanie w ciągu najbliższych 7 dni. Na przykład, jeśli Prognozy ostrzegają, że ktoś prawdopodobnie odłączy się od Twojej gry mobilnej, możesz użyć FCM, aby zaprosić ich do wzięcia udziału w nowej misji lub wysłać im walutę w grze.
  • Ostatnie zaangażowanie w aplikację. Jeśli użytkownik nie uruchomił Twojej aplikacji od jakiegoś czasu, możesz użyć tego ustawienia, aby wysłać mu kilka powiadomień, aby przypomnieć mu o wszystkich świetnych treściach, które ma do zaoferowania Twoja aplikacja.
  • Najpierw otwarte. Umożliwia to wysyłanie powiadomień na podstawie pierwszego otwarcia aplikacji przez użytkownika, na przykład możesz pomóc nowym użytkownikom w przyspieszeniu, wysyłając im powiadomienia zawierające przydatne wskazówki i porady.

Celowanie w jedno urządzenie za pomocą tokenów rejestracyjnych

Widzieliśmy już, jak wysyłać ukierunkowane powiadomienia na podstawie takich czynników, jak wiek użytkownika, zainteresowania i czas ostatniej interakcji z Twoją aplikacją, ale możesz wyrównać bardziej szczegółowo. W tej ostatniej sekcji pokażę, jak wysłać powiadomienie FCM na adres pojedynczy urządzenie.

Gdy użytkownik uruchamia aplikację po raz pierwszy, zestaw FCM SDK generuje token rejestracyjny dla tego wystąpienia aplikacji klienckiej. Możesz użyć FirebaseInstanceId.getInstance (). GetInstanceId (), aby przechwycić ten token rejestracyjny, a następnie wysłać powiadomienie do tego konkretnego tokena.

Pamiętaj, że w prawdziwym projekcie zwykle przechwytujesz token, wysyłając go na serwer aplikacji i przechowując go przy użyciu preferowanej metody, ale aby zachować prostotę, po prostu wydrukuję ten token na Logcat w Android Studio.

Oto moja ukończona funkcja MainActivity:

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.annotation.NonNull; import android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; klasa publiczna MainActivity rozszerza AppCompatActivity {private static final String TAG = "MainActivity"; @Override chronione void onCreate (pakiet saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (nowy OnCompleteListener() {@Override public void onComplete (@NonNull Task task) {if (! task.isSuccessful ()) {// Do zrobienia // return; } // Uzyskaj token identyfikatora instancji // String token = task.getResult (). GetToken (); Ciąg msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Otwórz plik strings.xml i utwórz zasób „fcm_token”, do którego odwołujemy się w MainActivity:

Token FCM:% s

Możesz teraz odzyskać unikalny token urządzenia:

  • Zainstaluj swój projekt na podłączonym urządzeniu z Androidem lub AVD.
  • Otwórz Logcat w Android Studio, wybierając kartę „Logcat” (gdzie kursor znajduje się na poniższym zrzucie ekranu).

  • Token urządzenia zostanie wydrukowany w sekcji „Debugowanie” Logcat, więc otwórz menu rozwijane i wybierz „Debuguj”.

W zależności od ilości informacji w Logcat może być trudno zlokalizować poszukiwaną linię. Jeśli masz problem, uruchom wyszukiwanie słowa „token” lub spróbuj zamknąć, a następnie ponownie uruchomić aplikację.

Po odzyskaniu tokena możesz użyć go do wysłania powiadomienia wypychanego na to konkretne urządzenie:

  • Przejdź do konsoli Firebase i wybierz projekt z menu rozwijanego, jeśli jeszcze tego nie zrobiłeś.
  • Wybierz „Cloud Messaging” z menu po lewej stronie.
  • Kliknij przycisk „Nowe powiadomienie”.
  • Wpisz swój tytuł i tekst, jak zwykle, ale następnie kliknij „Testuj na urządzeniu”.

  • Skopiuj / wklej swój token w polu „Dodaj instancję…”, a następnie kliknij małą niebieską ikonę „+”, która się pojawi.
  • Zaznacz pole wyboru towarzyszące tokenowi.

  • Kliknij „Testuj”.

To powiadomienie będzie teraz wyświetlane tylko na docelowym urządzeniu klienckim.

Podsumowując

W tym artykule pokazałem, jak wysyłać powiadomienia wypychane na Androida za pomocą Firebase Cloud Messaging i jak tworzyć powiadomienia skierowane do różnych sekcji Twojej bazy użytkowników.

Czy zamierzasz używać FCM we własnych projektach na Androida? Daj nam znać w komentarzach poniżej!

Czaami po protu chcez oderwać wzrok od woich rzeczy. Rozumiemy. Itnieje wiele poobów, aby to zrobić. Applock zapewniają zybki, choć nieco niekuteczny, środek ochrony prywatności. Itnieją ró...

Aplikacje do gier mobilnych ą teraz dziwną kulturą. Niektórzy nazywają je grami, a wiele innych - grami mobilnymi. Niektórzy nazywają je nawet aplikacjami do gier. Nie oceniamy. Mamy już li...

Fascynujące Publikacje