this
,
"Current token ["
+tkn+
"]"
,
Toast.
LENGTH_LONG
).show();
Log. d(
"App"
,
"Token ["
+tkn+
"]"
);
Добавим в папку с MainActivity.java следующий класс в отдельном
java-файле FireIDService.java:
public class
FireIDService
extends
FirebaseInstanceIdService {
@Override
public void
onTokenRefresh() {
String tkn =
FirebaseInstanceId. getInstance().getToken();
Log. d(
"Not"
,
"Token ["
+tkn+
"]"
);
}
}
А затем добавим следующий класс, отвечающий за сервис,
обрабатывающий входящее push-уведомление:
public class
FireMsgService
extends
FirebaseMessagingService {
@Override
public void
onMessageReceived(RemoteMessage remoteMessage) {
super
.onMessageReceived(remoteMessage);
99
Log. d(
"Msg"
,
"Message received ["
+remoteMessage+
"]"
);
// Create Notification
Intent intent =
new
Intent(
this
, MainActivity.
class
);
intent.addFlags(Intent.
FLAG_ACTIVITY_CLEAR_TOP
);
PendingIntent pendingIntent =
PendingIntent. getActivity(
this
,
1410
,
intent, PendingIntent.
FLAG_ONE_SHOT
);
NotificationCompat.Builder notificationBuilder =
new
NotificationCompat.Builder(
this
)
.setSmallIcon(R.drawable.
common_full_open_on_phone
)
.setContentTitle(
"Message"
)
.setContentText(remoteMessage.getNotification().getBody())
.setAutoCancel(
true
)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager)
getSystemService(Context.
NOTIFICATION_SERVICE
);
notificationManager.notify(
1410
,
notificationBuilder.build());
}
}
И последнее, что нужно сделать – добавить в файл манифеста
соответствующий сервис внутри тэга application:
<
service
android
:name=
".FireIDService"
>
<
intent-filter
>
<
action
android
:name=
"com.google.firebase.INSTANCE_ID_EVENT"
/>
intent-filter
>
service
>
Теперь постройте apk-файл и установите приложение на эмуляторе или
на реальном устройстве. После этого нажмите в браузере на кнопку Открыть
консоль, нажмите на название своего проекта и выберите кнопку настроек
справа от названия. Откроется окно настроек проекта, в котором на закладке
Cloud Messaging можно увидеть ключ сервера для аутентификации. Зная этот
100
ключ, можно посылать сообщения внутри приложения, с помощью другого
приложения и с помощью самой консоли Firebase, при этом планируя их на
определённое время, например, и для определённой аудитории.
Чтобы отправить сообщение, перейдите в категорию Grow -> Cloud
Messaging и нажмите на кнопку Send your first message. Заполните поля
(текст сообщения), нажмите кнопку Далее. Выберите приложение на
следующем шаге (Аудитория) – при этом Вы можете выбирать сегмент
пользователей – либо все пользователи, у которых установлено приложение,
либо конкретного пользователя, либо – пользователей, подписанных на
определённую тему. Нажмите кнопку Далее. В секции Планирование можно
настроить расписание, когда пользователи получат сообщение, либо просто
оставить Now для немедленной отправки сообщения. Нажмите Далее. В
следующей секции можно задавать события-конверсии, чтобы понимать,
откуда приходят пользователи – это больше связано с аналитикой
приложения. Если перейти с помощью кнопки Далее к следующей секции,
можно настрогить дополнительные параметры, например – ключ
конкретного пользователя, который получит уведомление. Для завершения
нажмите кнопку Проверить. Вы увидите подтверждающее окно с
уведомлением, в котором надо нажать кнопку опубликовать (рис. 47).
101
Рисунок 47 – Публикация push-уведомления с помощью Firebase
После нажатия на кнопку Опубликовать, даже если у Вас приложение
не запущено на мобильном устройстве, появится уведомление с небольшой
картинкой и стандартным звуком уведомления для Вашего устройства. В
панели уведомлений Вы увидите тему уведомления и текст. При нажатии на
уведомление запустится Ваше приложение. При выключенном интернете Вы
увидите уведомление сразу, как только подключитесь к интернету. При этом
консоль Firebase переключится на страницу с уведомлениями, где
отобразится созданное уведомление с указанием некоторых подробностей, и
102
где можно будет его продублировать, создать новое и создать эксперимент с
определённой целевой аудиторией (рис. 48).
Рисунок 48 – Результат публикации push-уведомления
Можно написать приложение, в котором будут 2 кнопки: одна будет
подписываться на уведомления, а другая – формировать и присылать
уведомление. Можно написать 2 приложения – одно отсылает уведомления,
другое принимает. А можно использовать какой-то другой механизм работы
с облаком, например, выводить в приложение аналитику по его крашам у
пользователей с помозью Firebase.
Достарыңызбен бөлісу: |