Изпращане на push известия за Android с Firebase Cloud Messaging

Автор: Louise Ward
Дата На Създаване: 4 Февруари 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
Изпращане на push известия за Android с Firebase Cloud Messaging - Приложения
Изпращане на push известия за Android с Firebase Cloud Messaging - Приложения

Съдържание


Въпреки че е извън обхвата на този урок, можете също да използвате FCM за известия нагоре, където FCM получава клиентско приложение или да уведомявате приложението ви, когато има нови данни, за да може да се изтегли. По този начин можете да гарантирате, че комуникацията между вашия сървър на приложения и клиентското приложение се осъществява само когато е необходимо, което е много по-ефективно, отколкото клиентското приложение, което се свързва със сървъра на редовни интервали, при вероятност може да има някои нови данни.

Тъй като FCM е част от Firebase, той също играе чудесно с други Firebase услуги. След като усвоите основните неща на FCM, може да искате да използвате A / B тестване, за да определите кои известия са най-ефективни или да използвате прогнозите на Firebase, за да приложите мощно машинно обучение към всички аналитични данни, генерирани от различни ваши FCM кампании.

FCM поддържа два вида s:

  • Известие Клиентското приложение ще се държи различно в зависимост от това дали е на заден план или на преден план, когато получава FCM. Ако приложението ви е на заден план, тогава SDK за Firebase автоматично ще обработи и ще го покаже като известие в системната лента на устройството. Тъй като системата Android изгражда известието за вас, това е един от най-лесните начини за изпращане на push известия до вашите потребители. Ако приложението ви получава FCM, докато е на преден план, тогава системата няма да обработвайте това известие автоматично, оставяйки ви да обработвате обратното обаждане в приложението си onReceived (). Ще изследваме OnReceived () по-късно в този урок, но засега просто имайте предвид, че ако приложението ви получи известно време, то е на преден план, по подразбиране това няма да бъде показано на потребителя.
  • Данни s. За разлика от известията, можете да използвате данни s, за да изпращате персонализирани елементи от данни към клиентското приложение. FCM обаче поставя лимит от 4KB върху тези данни, така че ако вашият полезен товар надвишава 4KB, ще трябва да извлечете допълнителните данни с помощта на WorkManager или API на JobScheduler.

В този урок ще се съсредоточим върху известията.


Какво ще кажете за Google Cloud Messaging?

Ако използвате сървъра и клиентските API на Google Cloud Messaging (GCM), тогава има някои лоши новини: тази услуга вече е оттеглена и Google планира да изключи „повечето“ услуги на GCM през април 2019 г. Ако все още сте използвайки GCM, трябва да започнете да мигрирате проектите си към FCM сега и трябва да сте завършили миграцията си до април 2019 г.

Добавяне на Firebase към вашия Android проект

Нека да видим колко лесно е да добавите основна поддръжка на FCM към приложението си и след това да я използвате, за да изпращате push известия до потребителите си.

Тъй като FCM е Firebase услуга, ще трябва да добавите Firebase към приложението си:

  • Преминете към конзолата на Firebase.
  • Изберете „Добавяне на проект“ и дайте име на проекта си.
  • Прочетете Общите условия. Ако сте доволни да продължите, изберете „Приемам ...“, последвано от „Създаване на проект“.
  • Изберете „Добавяне на Firebase към приложението ви за Android.“
  • Въведете името на пакета на вашия проект и щракнете върху „Регистрирайте приложението“.
  • Изберете „Изтеглете google-services.json.“
  • В Android Studio плъзнете и пуснете файла google-services.json в директорията на приложението на вашия проект.
  • Отворете файла на build.gradle на ниво проект и добавете следното:

classpath com.google.gms: google-services: 4.0.1

  • Отворете файла на build.gradle на ниво приложение и добавете приставката за услуги на Google, плюс зависимостите за Firebase Core и FCM:

// Добавете приставката за услуги на Google // приложете приставка: com.google.gms.google-services……… зависимости {изпълнение fileTree (dir: libs, include:) // Добавяне на Firebase Core // внедряване com.google.firebase: firebase-core: 16.0.1 // Добавяне на FCM // внедряване com.google.firebase: firebase-съобщения: 17.3.4

  • Когато бъдете подканени, синхронизирайте промените си.
  • След това трябва да уведомите конзолата на Firebase, че успешно сте добавили Firebase към проекта си. Инсталирайте приложението си или на физически Android смартфон или таблет, или на виртуално устройство за Android (AVD).
  • Върнете се в конзолата на Firebase, изберете „Стартиране на приложението, за да проверите инсталацията.“
  • След като Firebase открие приложението ви, ще видите „Поздравления“. Изберете „Продължете към конзолата.“

Изпращане на първото ви известие с push чрез Firebase

И това е! Вече можете да изпращате push известие до потребителите си и това известие ще се появи в системната лента на устройството (за сега нека приемем, че приложението ви не е на преден план, когато се достави).


Вие създавате FCM известия с помощта на композитора на известия, който е достъпен чрез конзолата Firebase:

  • Уверете се, че приложението ви е инсталирано и работи на заден план и че устройството ви има активна интернет връзка.
  • В конзолата Firebase изберете „Cloud Messaging“ от лявото меню.

  • Изберете „Изпращане на първото“.
  • Дайте заглавието и част от основния текст и натиснете „Напред“.

  • Отворете падащото меню „Избор на приложение“ и изберете приложението си от списъка. Този раздел включва също някои разширени опции, които можете да използвате за създаване на насочени известия въз основа на фактори като версия на приложението, местоположението на устройството и последния път, когато потребителят се ангажира с вашето приложение. Няма да използваме нито една от тези опции в известието ни за тест, но ако искате да видите какво е на разположение, изберете „и…“ и проучете последващото падащо меню.

  • След като приключите с редактирането на този раздел, щракнете върху „Напред“.
  • Ако приемем, че искате да изпратите това незабавно, отворете падащото меню „Изпращане на отговарящи на изискванията потребители“ и изберете „Сега“.
  • В долния десен ъгъл на екрана щракнете върху „Публикуване“.
  • Проверете цялата информация в следващото изскачащо меню и ако сте доволни да продължите, изберете „Публикуване“.

След няколко момента всички клиентски устройства, към които сте се насочили, трябва да получат това известие в системната си област.

През повечето време известията FCM ще бъдат доставяни незабавно, но понякога може да отнеме няколко минути, за да пристигнете, така че не изпадайте в паника, ако уведомяването ви се забави.

Поставяне на някои цели: Събития за конвертиране на известия

Когато създавате известие, обикновено имате предвид целта - дали това ще закара потребителите обратно към приложението ви, да ги убеди да разпръснат при покупка в приложение или просто да отворите известието си.

Можете да зададете цел на известието си, като използвате композитора за известия, и след това проследявате неговата ефективност в таблото за управление на отчетите FCM.

За да зададете цел, щракнете, за да разширите секцията „Събития на преобразуване“ на Навигационния композитор, след това отворете придружаващото падащо меню и изберете от наличните събития за преобразуване.

Успехът ви ли беше?

След като изпратите известие, можете да анализирате неговата ефективност в таблото за FCM отчитане, което трябва да се зарежда автоматично всеки път, когато изпращате ново, или можете да получите достъп до таблото директно.

Дори и да не сте задали изрични цели за реализация, все още можете да прецените дали потребителите действат по вашите известия, сравнявайки броя на доставените s и броя на отворените.

Можете също да изберете всеки от този списък, за да видите данните за изпращане, отваряне и преобразуване като графика. Ако зададете цели за реализация, тук ще намерите и статистическите данни, свързани с тези цели.

Какво става, ако приложението ми е на преден план?

FCM известията се държат различно в зависимост от състоянието на клиентското приложение.

По подразбиране приложението ви няма да показва всички FCM получени, докато е на преден план, така че, когато изпратите, няма гаранция, че потребителите ви всъщност няма виждам че .

За да действате върху приложението, което приложението ви получава, докато е в преден план, ще трябва да разширите FirebaseMessagingService, да отмените метода onReceived и след това да извлечете съдържанието, като използвате getNotification или getData, в зависимост от това дали работите с данни или уведомления или и двете.

Създайте нов клас Java, наречен „MyFirebaseMessagingService“ и след това добавете следното:

публичен клас MyFirebaseMessagingService разширява FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (отдалечен);

Ще трябва също да създадете обект за известие. Това е вашият шанс да персонализирате известието си, например да изберете звука, който трябва да възпроизвежда всеки път, когато потребителят получи това известие, или да приложите персонализирана икона за известие. Ще трябва също да извлечете съдържанието от данните или известието, например:

NotificationCompat.Builder уведомлениеBuilder = нов NotificationCompat.Builder (това, „channel_id“) .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRI). setStyle (ново NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (вярно); NotificationManager уведомлениеManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notiManager.notify (0, уведомлениеBuilder.build ()); }}

След като създадете услугата си, не забравяйте да я добавите към своя Манифест:

Сега, всеки път, когато приложението ви получава FCM, докато е на преден план, то ще бъде доставено на манипулатора на onReceived () и след това приложението ви ще предприеме действията, определени от вас, като публикуване на известието или актуализиране на съдържанието на приложението ви.

По-ангажиращи известия: Насочване на вашите потребители

Досега изпращахме същото уведомление до цялата ни потребителска база, но известията са много по-ангажиращи, когато са насочени към конкретни потребители.

Можете да използвате композитора за известия, за да изпращате различни известия до различни части на вашата потребителска база. Преминете към Композитора на известия и създайте известието си като обикновено, но в секцията „Насочване“ кликнете върху „и“. Това ви дава достъп до ново падащо меню, което съдържа следните опции:

  • Версия. Това ви позволява да насочвате или изключвате устройства, изпълняващи конкретни версии на вашето приложение. Например можете да изпращате известия до хора, които изпълняват безплатната версия, като ги насърчавате да надстроят до премиум версията на приложението си.
  • Език. Можете да използвате тази настройка, за да насочите или изключите различните езици и локали, които приложението ви поддържа, като например създаване на известия, пригодени за различни часови зони или езици.
  • Потребителска аудитория. Това ви позволява да насочвате или изключвате различни секции от вашата аудитория. Например, можете да използвате тази настройка, за да изкушите хората, които имат история на покупки в приложения, като им предлагате отстъпка или привличате вниманието им към всички невероятни нови продукти в приложението, които току-що пуснахте.
  • Собственост на потребителя. Ако настройвате Firebase Analytics, тогава ще имате достъп до редица информация за вашата аудитория чрез потребителски свойства. Можете да използвате тези свойства в комбинация с FCM, за да изпращате насочени известия до много специфични секции от вашата потребителска база, като например хора от 25-34 годишна възраст, които се интересуват от спорт.
  • Прогнози. Ако настройвате прогнозите на Firebase, тогава можете да насочвате към потребителите въз основа на вероятността те да участват в определено поведение през следващите 7 дни. Например, ако прогнозите предупреждават, че има вероятност някой да се откаже от вашата мобилна игра, тогава можете да използвате FCM, за да ги поканите да участват в нов квест или да им изпратите някаква валута в играта.
  • Последно ангажиране с приложението. Ако потребител не е стартирал приложението ви от известно време, тогава можете да използвате тази настройка, за да им изпратите няколко известия, само за да им напомните за цялото страхотно съдържание, което вашето приложение може да предложи.
  • Първо отворено. Това ви позволява да изпращате известия въз основа на първия път, когато потребителят е отворил приложението ви, например можете да помогнете на новите потребители да се ускорят, като им изпращате известия, съдържащи полезни съвети и съвети.

Насочване към едно устройство с маркери за регистрация

Вече видяхме как да изпращаме насочени известия въз основа на фактори като възрастта, интересите на потребителя и последния път, когато те се ангажираха с вашето приложение, но можете да изравнявайте се по-точно. В този последен раздел ще ви покажа как да изпращате известие FCM до единичен устройство.

Когато потребителят стартира приложението ви за първи път, FCM SDK генерира знак за регистрация за този екземпляр на клиентското приложение. Можете да използвате FirebaseInstanceId.getInstance (). GetInstanceId (), за да заснемете този регистрационен маркер и след това да изпратите известие към този конкретен маркер.

Обърнете внимание, че в реален проект обикновено заснемате токен, като го изпращате до вашия сървър на приложения и го съхранявате с предпочитания от вас метод, но за да поддържате нещата нещата, просто ще отпечатвам този жетон в Logcat на Android Studio.

Ето моята завършена MainActivity:

импортиране на android.support.v7.app.AppCompatActivity; импортиране на android.os.Bundle; импортиране на android.support.annotation.NonNull; import android.util.Log; импортиране на com.google.android.gms.tasks.OnCompleteListener; импортиране на com.google.android.gms.tasks.Task; импортиране на com.google.firebase.iid.FirebaseInstanceId; импортиране на com.google.firebase.iid.InstanceIdResult; обществен клас MainActivity разширява AppCompatActivity {частен статичен окончателен String TAG = "MainActivity"; @Override защитена празнота onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (нов OnCompleteListener() {@Override public void onComplete (@NonNull Task задача) {if (! task.isSuccessful ()) {// To do // return; } // Вземете маркера на идентификатор на инстанция // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, msg); }}); }}

Отворете файла си strings.xml и създайте низовия ресурс „fcm_token“, който посочваме в нашата MainActivity:

FCM Token:% s

Вече можете да извлечете уникалното означение на устройството си:

  • Инсталирайте проекта си на свързаното устройство с Android или AVD.
  • Отворете Logcat на Android Studio, като изберете раздела „Logcat“ (където курсорът е разположен на следната екранна снимка).

  • Маркерът на вашето устройство ще бъде отпечатан в секцията „Debug“ на Logcat, така че отворете падащото меню и изберете „Debug“.

В зависимост от количеството информация във вашия Logcat може да е трудно да забележите линията, която търсите. Ако се мъчите, започнете търсене на думата „жетон“ или опитайте да затворите и след това да стартирате отново приложението.

След като извлечете маркера, можете да го използвате, за да изпратите известие с push на това конкретно устройство:

  • Преминете към конзолата Firebase и изберете проекта си от падащото меню, ако още не сте го направили.
  • Изберете „Cloud Messaging“ от лявото меню.
  • Кликнете върху бутона „Ново известие“.
  • Въведете заглавието и текста, както обикновено, но след това кликнете върху „Тестване на устройството“.

  • Копирайте / поставете маркера си в полето „Добавяне на екземпляр…“ и след това щракнете върху малката синя икона „+“, която се показва.
  • Поставете отметка в придружаващия отметка.

  • Кликнете върху „Тест“.

Това известие вече ще се показва само на устройството с насочен клиент.

Обобщавайки

В тази статия ви показах как да изпращате изтласкващи известия за Android, като използвате Firebase Cloud Messaging и как да създавате известия, насочени към различни секции от вашата потребителска база.

Ще използвате FCM в собствените си проекти за Android? Уведомете ни в коментарите по-долу!

amung беше един от най-ранните осиновители на технологията за виртуална реалност, пускайки своите Gear VR слушалки през 2015 г. Слушалките ви позволяват да поставите флагман на amung в него, като теле...

Тази седмица в нашия прожектор Plan Pick е имало само един смартфон. Зашеметяващото Устройства Galaxy Note 10 и Note 10 Plu са на разположение за предварителна поръчка сега преди датата на издаване на...

Популярни Днес