Надсилання натискань Android на Android через Firebase Cloud Messaging

Автор: Louise Ward
Дата Створення: 4 Лютий 2021
Дата Оновлення: 1 Липня 2024
Anonim
Надсилання натискань Android на Android через Firebase Cloud Messaging - Додатки
Надсилання натискань Android на Android через Firebase Cloud Messaging - Додатки

Зміст


Хоча це виходить за межі цього підручника, ви також можете використовувати FCM для сповіщень про те, що FCM отримує клієнтську програму, або сповіщати ваш додаток, коли для нього доступні нові дані для завантаження. Таким чином, ви можете переконатися, що зв’язок між вашим сервером додатків та клієнтським додатком відбувається лише в разі необхідності, що набагато ефективніше, ніж клієнтське додаток, яке регулярно контактує з сервером, і, можливо, можуть бути нові дані.

Оскільки FCM є частиною Firebase, вона також чудово грає з іншими службами Firebase. Після того, як ви освоїли основи FCM, ви можете скористатися тестуванням A / B, щоб визначити, які сповіщення є найефективнішими, або скористайтеся прогнозами Firebase, щоб застосувати потужне машинне навчання до всіх аналітичних даних, отриманих у різних кампаніях FCM.

FCM підтримує два типи s:

  • Повідомлення s. Клієнтська програма поводитиметься по-різному залежно від того, знаходиться вона у фоновому режимі чи на передньому плані, коли вона отримує FCM. Якщо ваша програма знаходиться у фоновому режимі, пакет SDK Firebase автоматично обробляє і відображатиме його як сповіщення в системному треї пристрою. Оскільки система Android будує сповіщення для вас, це один з найпростіших способів надсилання push-сповіщень вашим користувачам. Якщо ваш додаток отримує FCM, поки він на передньому плані, тоді система не буде обробляти це сповіщення автоматично, залишаючи вас обробляти зворотний виклик додатка onReceived (). Ми будемо вивчати OnReceived () пізніше в цьому підручнику, але поки що тільки пам’ятайте, що якщо ваш додаток отримує деякий час на передньому плані, то за замовчуванням це не відображатиметься користувачеві.
  • Дані s. На відміну від повідомлень, ви можете використовувати дані s для надсилання користувацьких елементів даних до клієнтської програми. Однак FCM встановлює обмеження в 4 КБ для цих даних, тому, якщо ваше корисне навантаження перевищує 4 КБ, вам потрібно буде отримати додаткові дані за допомогою 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 перетягніть файл 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……… залежності {file 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

І це все! Тепер ви можете надсилати поштове сповіщення своїм користувачам, і це повідомлення з’явиться в системному треї пристрою (на даний момент, припустимо, ваш додаток не буде на першому плані після його доставки).


Ви створюєте сповіщення FCM за допомогою композитора сповіщень, який доступний через консоль Firebase:

  • Переконайтеся, що ваш додаток встановлено та працює у фоновому режимі, а також у вашому пристрої активне підключення до Інтернету.
  • У консолі Firebase виберіть "Хмарні повідомлення" у лівому меню.

  • Виберіть "Надіслати своє перше".
  • Дайте назву та текст тексту та натисніть «Далі».

  • Відкрийте спадне меню "Вибрати додаток" та виберіть свою програму зі списку. Цей розділ також містить деякі розширені параметри, які ви можете використовувати для створення цільових сповіщень на основі таких факторів, як версія додатка, місцезнаходження пристрою та останній раз, коли користувач займався вашим додатком. Ми не будемо використовувати жоден із цих варіантів у своєму тестовому сповіщенні, але якщо ви хочете побачити, що доступно, виберіть "і ..." та вивчіть подальше спадне меню.

  • Після завершення редагування цього розділу натисніть «Далі».
  • Припустивши, що ви хочете надіслати це негайно, відкрийте спадне меню "Надіслати відповідним користувачам" та виберіть "Зараз".
  • У правій нижній частині екрана натисніть «Опублікувати».
  • Перевірте всю інформацію в наступному спливаючому вікні, і якщо ви раді продовжити, виберіть "Опублікувати".

Через кілька моментів усі клієнтські пристрої, на які ви орієнтувались, повинні отримувати це повідомлення в системному треї.

У більшості випадків сповіщення FCM надсилатимуться негайно, але іноді це може зайняти декілька хвилин, тому не панікуйте, якщо ваше сповіщення затримано.

Постановка деяких цілей: Події конверсії сповіщень

Створюючи сповіщення, зазвичай, ви маєте на увазі мету - повернути користувачів до вашої програми, переконати їх виплеснути покупку через додаток або просто відкрити своє сповіщення.

Ви можете призначити ціль своєму сповіщенню за допомогою композитора повідомлень, а потім відстежувати його ефективність на інформаційній панелі звітів FCM.

Щоб встановити мету, натисніть, щоб розгорнути розділ «Події конверсії» навігаційного композитора, а потім відкрийте супутнє спадне меню та виберіть із наявних подій конверсії.

Чи було ваше повідомлення успішним?

Після відправлення сповіщення ви можете проаналізувати його ефективність на інформаційній панелі звітів FCM, яка повинна автоматично завантажуватися кожного разу, коли ви надсилаєте нову, або ви можете отримати доступ до інформаційної панелі безпосередньо.

Навіть якщо ви не встановили явні цілі конверсії, ви все одно можете оцінювати, чи користувачі діють на ваші сповіщення, порівнюючи кількість доставлених s та кількість відкритих.

Ви також можете вибрати будь-яке в цьому списку, щоб побачити дані надсилання, відкриття та перетворення у вигляді графіка. Якщо ви встановите будь-які цілі конверсії, тут ви також знайдете статистику щодо цих цілей.

Що робити, якщо моє додаток на першому плані?

Повідомлення FCM поводяться по-різному в залежності від стану клієнтської програми.

За замовчуванням ваш додаток не відображатиме жодного FCM, який він отримує, коли він на передньому плані, тож коли ви надсилаєте гарантію, ваші користувачі фактично не будуть побачити що.

Діяти над вашим додатком, коли він перебуває в передній план, вам потрібно буде розширити FirebaseMessagingService, замінити метод onReceived і потім отримати вміст за допомогою getNotification або getData, залежно від того, працюєте ви з даними, повідомленнями або обома.

Створіть новий клас Java під назвою “MyFirebaseMessagingService” та додайте наступне:

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

Вам також потрібно створити об’єкт сповіщення. Це ваш шанс налаштувати своє сповіщення, наприклад, вибрати звук, який повинен відтворюватися кожного разу, коли користувач отримає це повідомлення, або застосувавши власну піктограму сповіщення. Вам також потрібно отримати вміст із даних або сповіщення, наприклад:

Повідомлення NotificationCompat.BuilderBuilder = нове NotificationCompat.Builder (це, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompat.PRI) .ITYPriority (NotificationCompat.PRI). setStyle (новий NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManager notiManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); notificationManager.notify (0, noticeBuilder.build ()); }}

Створивши свою послугу, не забудьте додати її до свого Маніфесту:

Тепер, щоразу, коли ваш додаток отримує FCM, коли він перебуває на передньому плані, він буде доставлений до обробника onReceived (), і ваш додаток потім буде вживати визначені вами дії, такі як розміщення повідомлення або оновлення вмісту вашого додатка.

Більш привабливі сповіщення: націлювання на користувачів

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

Ви можете використовувати композитора сповіщень для надсилання різних сповіщень у різні частини бази користувачів. Перейдіть до композитора сповіщень і створіть своє сповіщення як звичайне, але в розділі "Ціль" натисніть "і". Це дає вам доступ до нового спадного меню, що містить такі параметри:

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

Націлювання на один пристрій з маркерами реєстрації

Ми вже бачили, як надсилати цільові сповіщення на основі таких факторів, як вік, інтереси користувача та останній раз, коли вони брали участь у вашому додатку, але ви можете вирівнятися більш конкретний. У цьому останньому розділі я покажу вам, як надіслати повідомлення FCM на адресу неодружений пристрій.

Коли користувач запускає ваш додаток вперше, FCK SDK генерує маркер реєстрації для цього екземпляра клієнтського додатка. Ви можете використовувати FirebaseInstanceId.getInstance (). GetInstanceId (), щоб захопити цей маркер реєстрації, а потім надіслати сповіщення про цей конкретний маркер.

Зауважте, що в реальному проекті ви зазвичай захоплюєте маркер, надсилаючи його на свій сервер додатків і зберігаючи його за допомогою вибраного вам способу, але для того, щоб зробити це просто, я просто надрукую цей маркер в Logcat Android Studio.

Ось моя завершена MainActivity:

імпортувати android.support.v7.app.AppCompatActivity; імпортувати android.os.Bundle; імпортувати android.support.annotation.NonNull; імпорт 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 {приватний статичний остаточний рядок TAG = "MainActivity"; @Override захищений недійсним onCreate (пакет збереженихInstanceState) {super.onCreate (збереженийInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (новий OnCompleteListener() {@ Oververide public void onComplete (Завдання @NonNull) завдання) {if (! task.isSuccessful ()) {// To робити // return; } // Отримати маркер ідентифікатора екземпляра // String token = task.getResult (). GetToken (); Рядок msg = getString (R.string.fcm_token, маркер); Log.d (TAG, мсг); }}); }}

Відкрийте файл strings.xml і створіть рядок "fcm_token", на який ми посилаємося в нашому MainActivity:

FCM Token:% s

Тепер ви можете отримати унікальний маркер свого пристрою:

  • Встановіть свій проект на підключеному пристрої Android або AVD.
  • Відкрийте Logcat Android Studio, вибравши вкладку "Logcat" (де курсор розміщений на наступному скріншоті).

  • Маркер вашого пристрою буде надрукований у розділі "Налагодження" Logcat, тому відкрийте спадне меню та виберіть "Налагодження".

Залежно від кількості інформації у вашому Logcat, може бути важко помітити лінію, яку ви шукаєте. Якщо ви боретеся, запустіть пошук слова "маркер" або спробуйте закрити та повторно запустити додаток.

Щойно ви отримали маркер, ви можете використовувати його для надсилання push-повідомлення на цей конкретний пристрій:

  • Перейдіть до консолі Firebase і виберіть проект зі спадного меню, якщо ви ще цього не зробили.
  • Виберіть "Хмарні повідомлення" у меню ліворуч.
  • Натисніть кнопку "Нове повідомлення".
  • Введіть назву та текст як звичайне, але натисніть «Тест на пристрої».

  • Скопіюйте / вставте маркер у поле "Додати екземпляр ...", а потім натисніть маленький синій значок "+", який з'явиться.
  • Установіть прапорець, що супроводжує маркер.

  • Натисніть "Тест".

Це повідомлення з’явиться лише на цільовому клієнтському пристрої.

Підведенню

У цій статті я показав вам, як надсилати push-сповіщення Android, використовуючи Firebase Cloud Messaging та як створювати сповіщення, орієнтовані на різні розділи бази користувачів.

Чи збираєтесь ви використовувати FCM у власних проектах Android? Повідомте нас у коментарях нижче!

Nintendo witch Online трохи дешевше - 20 доларів на рік, але вам доведеться доплачувати, щоб грати з друзями в Інтернеті. Це просто стандартна практика для консолей, і більшість геймерів оплачують вит...

Один із свербіж, який намагається подолати Google tadia, - це гнучкість. Давно минули дні, коли людям потрібно вкласти фінансові вкладення в обладнання, щоб випробувати новітні та найкращі відеоігри. ...

Вибір Сайту