Отправка push-уведомлений на Android с помощью Firebase Cloud Messaging

Автор: Louise Ward
Дата создания: 4 Февраль 2021
Дата обновления: 12 Май 2024
Anonim
Как отправить Push уведомление? Firebase [Ru, Android] / Мобильный разработчик
Видео: Как отправить Push уведомление? Firebase [Ru, Android] / Мобильный разработчик

Содержание


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

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


FCM поддерживает два типа s:

  • Уведомление с. Клиентское приложение будет вести себя по-разному в зависимости от того, находится ли оно в фоновом режиме или на переднем плане, когда оно получает FCM. Если ваше приложение работает в фоновом режиме, то Firebase SDK автоматически обработает и отобразит его в виде уведомления на панели задач устройства. Поскольку система Android создает уведомления для вас, это один из самых простых способов отправки push-уведомлений вашим пользователям. Если ваше приложение получает FCM, когда оно находится на переднем плане, то система не будет обрабатывать это уведомление автоматически, оставляя вас для обработки обратного вызова onReceived () вашего приложения. Мы будем изучать onReceived () позже в этом руководстве, но сейчас просто учтите, что если ваше приложение какое-то время находится на переднем плане, то по умолчанию это не будет отображаться пользователю.
  • Данные с. В отличие от уведомлений, вы можете использовать данные для отправки пользовательских элементов данных в клиентское приложение. Однако 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 Studio перетащите файл google-services.json в каталог «app» вашего проекта.
  • Откройте файл build.gradle уровня проекта и добавьте следующее:

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

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

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

  • При появлении запроса синхронизируйте свои изменения.
  • Затем вы должны сообщить консоли Firebase, что вы успешно добавили Firebase в свой проект. Установите приложение на физический смартфон или планшет Android или виртуальное устройство Android (AVD).
  • Вернувшись в консоль Firebase, выберите «Запустить приложение для проверки установки».
  • Как только Firebase обнаружит ваше приложение, вы увидите «Поздравления». Выберите «Перейти к консоли».

Отправка вашего первого push-уведомления с помощью Firebase

Вот и все! Теперь вы можете отправить push-уведомление своим пользователям, и это уведомление появится в системном трее устройства (на данный момент давайте предположим, что ваше приложение не находится на переднем плане, когда оно доставлено).

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

  • Убедитесь, что ваше приложение установлено и работает в фоновом режиме, и что ваше устройство имеет активное подключение к Интернету.
  • В консоли Firebase выберите «Облачные сообщения» в меню слева.

  • Выберите «Отправить первым».
  • Укажите название и текст, а затем нажмите «Далее».

  • Откройте выпадающий список «Выберите приложение» и выберите приложение из списка. В этом разделе также представлены некоторые дополнительные параметры, которые можно использовать для создания целевых уведомлений в зависимости от таких факторов, как версия приложения, локаль устройства и время последнего взаимодействия пользователя с вашим приложением. Мы не будем использовать ни одну из этих опций в нашем тестовом уведомлении, но если вы хотите увидеть, что доступно, выберите «и…» и изучите последующий выпадающий список.

  • Закончив редактирование этого раздела, нажмите «Далее».
  • Предполагая, что вы хотите отправить это немедленно, откройте выпадающий список «Отправить подходящим пользователям» и выберите «Сейчас».
  • В правом нижнем углу экрана нажмите «Опубликовать».
  • Проверьте всю информацию в следующем всплывающем окне. Если вы хотите продолжить, выберите «Опубликовать».

Через несколько мгновений все целевые клиентские устройства должны получить это уведомление в своем системном трее.

В большинстве случаев уведомления FCM будут доставлены немедленно, но иногда для прибытия может потребоваться несколько минут, поэтому не паникуйте, если ваше уведомление задерживается.

Установка некоторых целей: Уведомление о преобразовании событий

Создавая уведомление, вы обычно имеете в виду цель - будь то привлечение пользователей к вашему приложению, убедить их потратить на покупку внутри приложения или просто открыть свое уведомление.

Вы можете назначить цель своему уведомлению с помощью Notification Composer, а затем отслеживать эффективность этого уведомления на панели инструментов отчетов FCM.

Чтобы установить цель, щелкните, чтобы развернуть раздел «События преобразования» в Navigation Composer, затем откройте соответствующий раскрывающийся список и выберите один из доступных событий преобразования.

Было ли ваше уведомление успешным?

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

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

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

Что делать, если мое приложение находится на переднем плане?

Уведомления FCM ведут себя по-разному в зависимости от состояния клиентского приложения.

По умолчанию ваше приложение не будет отображать какие-либо FCM, которые оно получает, пока оно находится на переднем плане, поэтому при отправке не гарантируется, что ваши пользователи будут на самом деле видеть что .

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

Создайте новый класс Java с именем «MyFirebaseMessagingService», а затем добавьте следующее:

открытый класс MyFirebaseMessagingService extends FirebaseMessagingService {@Override public void onReceived (Remote) {super.onReceived (remote);

Вам также необходимо создать объект уведомления. Это ваш шанс настроить свое уведомление, например, выбрать звук, который должен воспроизводиться всякий раз, когда пользователь получает это уведомление, или применить пользовательский значок уведомления. Вам также необходимо извлечь содержимое из данных или уведомления, например:

NotificationCompat.BuildertificationBuilder = new NotificationCompat.Builder (this, "channel_id") .setContentTitle (remote.getNotification (). GetTitle ()) .setContentText (remote.getNotification (). GetBody ()) .setPriority (NotificationCompITDEF) .I setStyle (new NotificationCompat.BigTextStyle ()) .setSound (RingtoneManager.getDefaultUri (RingtoneManager.TYPE_NOTIFICATION)) .setSmallIcon (R.mipmap.ic_launcher) .setAutoCancel (true); NotificationManagertificationManager = (NotificationManager) getSystemService (Context.NOTIFICATION_SERVICE); tificationManager.notify (0 ,tificationBuilder.build ()); }}

Создав свой сервис, не забудьте добавить его в свой манифест:

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

Более привлекательные уведомления: ориентация на пользователей

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

Вы можете использовать Notification Composer для отправки разных уведомлений в разные части вашей пользовательской базы. Перейдите в Notification Composer и создайте уведомление как обычно, но в разделе «Цель» нажмите «и». Это даст вам доступ к новому раскрывающемуся списку, содержащему следующие параметры:

  • Версия. Это позволяет вам ориентироваться или исключать устройства, на которых запущены конкретные версии вашего приложения. Например, вы можете отправлять уведомления людям, работающим с бесплатной версией, предлагая им обновить версию Premium до вашего приложения.
  • Язык. Вы можете использовать этот параметр для нацеливания или исключения различных языков и локалей, поддерживаемых вашим приложением, например создания уведомлений, адаптированных для разных часовых поясов или языков.
  • Пользовательская аудитория (ы). Это позволяет вам ориентироваться или исключать различные разделы вашей аудитории. Например, вы можете использовать этот параметр, чтобы соблазнить людей, которые уже давно совершали покупки в приложении, предлагая им скидку или привлекая их внимание ко всем удивительным новым продуктам в приложении, которые вы только что выпустили.
  • Пользовательская собственность. Если вы настроили Firebase Analytics, то у вас будет доступ к различной информации о вашей аудитории через пользовательские свойства. Вы можете использовать эти свойства в сочетании с FCM, чтобы отправлять целевые уведомления в очень конкретные разделы вашей пользовательской базы, например, людям в возрасте от 25 до 34 лет, которые интересуются спортом.
  • Прогнозирование. Если вы настроили Firebase Predictions, вы можете настроить таргетинг на пользователей в зависимости от того, насколько вероятно, что они будут вести себя определенным образом в течение следующих 7 дней. Например, если Predictions предупреждает, что кто-то может выйти из вашей мобильной игры, вы можете использовать FCM, чтобы пригласить его принять участие в новом квесте или отправить ему некоторую внутриигровую валюту.
  • Последнее участие приложения. Если пользователь не запускал ваше приложение в течение некоторого времени, вы можете использовать этот параметр, чтобы отправить ему несколько уведомлений, просто чтобы напомнить им обо всем замечательном контенте, который может предложить ваше приложение.
  • Сначала открой. Это позволяет отправлять уведомления в зависимости от того, когда пользователь впервые открыл ваше приложение, например, вы можете помочь новым пользователям быстрее освоиться, отправив им уведомления, содержащие полезные советы и рекомендации.

Ориентация на одно устройство с регистрационными токенами

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

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

Обратите внимание, что в реальном проекте вы, как правило, захватываете токен, отправляя его на сервер приложений и сохраняя его, используя предпочитаемый вами метод, но чтобы упростить задачу, я просто напечатаю этот токен в Logcat в Android Studio.

Вот мой законченный MainActivity:

import android.support.v7.app.AppCompatActivity; импорт android.os.Bundle; импорт android.support.annotation.NonNull; импорт android.util.Log; import com.google.android.gms.tasks.OnCompleteListener; импорт com.google.android.gms.tasks.Task; import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.InstanceIdResult; открытый класс MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity"; @Override protected void onCreate (Bundle saveInstanceState) {super.onCreate (сохраненныйInstanceState); setContentView (R.layout.activity_main); FirebaseInstanceId.getInstance (). GetInstanceId () .addOnCompleteListener (новый OnCompleteListener() {@Override public void onComplete (задача @NonNull task) {if (! task.isSuccessful ()) {// Делать // return; } // Получить токен идентификатора экземпляра // String token = task.getResult (). GetToken (); String msg = getString (R.string.fcm_token, token); Log.d (TAG, MSG); }}); }}

Откройте файл strings.xml и создайте строковый ресурс «fcm_token», на который мы ссылаемся в нашей функции MainActivity:

Токен FCM:% s

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

  • Установите свой проект на подключенное устройство Android или AVD.
  • Откройте Logcat в Android Studio, выбрав вкладку «Logcat» (где курсор расположен на следующем снимке экрана).

  • Токен вашего устройства будет напечатан в разделе «Отладка» Logcat, поэтому откройте выпадающий список и выберите «Отладка».

В зависимости от объема информации в вашем Logcat, может быть трудно определить нужную вам строку. Если вы испытываете затруднения, запустите поиск по слову «токен» или попробуйте закрыть, а затем перезапустить приложение.

Получив токен, вы можете использовать его для отправки push-уведомления на это конкретное устройство:

  • Перейдите в консоль Firebase и выберите свой проект из выпадающего меню, если вы этого еще не сделали.
  • Выберите «Облачные сообщения» в меню слева.
  • Нажмите кнопку «Новое уведомление».
  • Введите свой заголовок и текст, как обычно, но затем нажмите «Тест на устройстве».

  • Скопируйте / вставьте свой токен в поле «Добавить экземпляр…», а затем нажмите на маленький синий значок «+», который появляется.
  • Установите соответствующий флажок токена.

  • Нажмите «Тест».

Это уведомление теперь будет отображаться только на целевом клиентском устройстве.

Завершение

В этой статье я показал вам, как отправлять push-уведомления Android, используя Firebase Cloud Messaging, и как создавать уведомления, предназначенные для различных разделов вашей пользовательской базы.

Собираетесь ли вы использовать FCM в своих собственных проектах Android? Дайте нам знать в комментариях ниже!

Филиппинский является официальным языком Филиппин наряду с английским. Это также очень похоже на тагальский язык, также известный в этом регионе. В любом случае, путешественникам и отдыхающим не нужн...

Все больше людей снимают фильмы на смартфонах. Это имеет смысл, если честно. Большинство современных флагманов снимают в режиме 4K, и это на самом деле более высокое разрешение, чем некоторые зеркалк...

Самые читаемые