Увімкніть push-сповіщення для Android (за бажанням)

Push-повідомлення чудово підходять для обміну повідомленнями в реальному часі та інформування користувачів вашого застосунку про те, що для них є нове повідомлення.
Написано Микола
Оновлено 5 місяців тому

Ми вважаємо, що push-сповіщення — це чудовий спосіб увімкнути повідомлення в режимі реального часу та повідомляти користувачів про те, що їм надійшло нове повідомлення від HelpCrunch (тобто з вашоїго акаунту). Це дозволяє вам залишатися на зв’язку зі своїми користувачами, навіть коли застосунок активно не використовується.

При цьому HelpCrunch Mobile SDK не вимагає увімкнення push-повідомлень.  Без push-сповіщень користувачі вашого застосунку все одно зможуть отримувати нові повідомлення, але побачать їх лише якщо відкриють вікно чату HelpCrunch.

Ми використовуємо Firebase Cloud Messaging (FCM). Це міжплатформне рішення для обміну повідомленнями, яке дозволяє надійно і безкоштовно доставляти повідомлення.

Отже, щоб додати push-сповіщення до застосунку, вам знадобиться:

  1. Додайте google-services.json до папки app/
  2. Щоб увімкнути продукти Firebase у своєму застосунку, додайте плагін google-services до свого файлу app/build.gradle. У вашому кореневому (на рівні проекту) файлі Gradle (build.gradle) додайте правила для включення плагіна Google Services. Переконайтеся, що у вас також є репозиторій Google Maven.
buildscript {

  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
  }

  dependencies {
    // ...

    // Add the following line:
    classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
  }
}

allprojects {
  // ...

  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
    // ...
  }
}
In your module (app-level) Gradle file (usually app/build.gradle), add a line to the bottom of the file.
apply plugin: 'com.android.application'
android {
     // ...
}
// Add the following line to the bottom of the file:
apply plugin: 'com.google.gms.google-services' // Google Play services Gradle plugin
Не забудьте налаштувати ваш застосунок Android та додати ключ облікового запису служби Google із Firebase Console. Детальніше про генерацію і додавання ключа, читайте тут.

Додавання сповіщень HelpCrunch до проекту зі сповіщеннями

Якщо у вашому проекті вже є клас FirebaseMessagingService, то push-сповіщення надходитимуть одразу у нього. 

У цьому випадку вам потрібно відокремити свої сповіщення від наших. Наступний код чудово виконує цю задачу:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        if (HelpCrunchExt.isHelpCrunchMessage(remoteMessage)) {
            HelpCrunch.showNotification(remoteMessage);
        } else {
            //Do something yours
        }
    }
}

Конфлікти FirebaseMessagingService

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

Приклад ініціалізації сервісу:

<service
	android:name=".YourFirebaseMessagingService"
	android:exported="false">
	<intent-filter android:priority="9991">
		<action android:name="com.google.firebase.MESSAGING_EVENT" />
	</intent-filter>
</service>
Чи була наша стаття корисною?