Я создал приложение в Xamarin.Forms (Android + iOS), на который я хочу отправлять push-уведомления.
Моя цель - отправлять отдельные уведомления из бэкэнд-приложения c # на рабочем столе, а мои уведомления отправлять накак для устройств Android, так и для устройств iOS.
. Для этого я собираюсь использовать концентраторы уведомлений Azure.
На первом этапе я сосредоточен на распространении уведомлений на устройства Android, поэтому выполнил следующие действия.шаги:
- Я создал учетную запись Firebase и зарегистрировал свое приложение.
- Я добавил код для получения уведомлений в своем приложении.
- Я создал учетную запись Azure.
- Я создал Центр уведомлений в Azure.
- Я вставил свой ключ сервера в настройки GCM / FCM.
- Я создал свой бэкэнд.
Код бэкенда:
private async void Send()
{
var msg = "Test message " + DateTime.Now.ToLongTimeString();
var url = "http://www.google.com";
string notificationHubName = "MyNotificationHub";
string notificationHubConnection = "Endpoint=sb://xxxxxxx.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=xxxxxxxxxxx";
NotificationHubClient hub = NotificationHubClient.CreateClientFromConnectionString(notificationHubConnection, notificationHubName);
Dictionary<string, string> templateParams = new Dictionary<string, string>();
templateParams["messageParam"] = msg;
templateParams["urlParam"] = url;
try
{
var result = await hub.SendTemplateNotificationAsync(templateParams);
MessageBox.Show(this, "OK.", "Test message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (System.Exception ex)
{
MessageBox.Show(this, "Exception: " + ex.Message + "." , "Test Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Этот код работает, и уведомления отправляются на мои устройства Android.
К сожалению, похоже, что Azure по-прежнему использует GCM вместо FCM для доставки уведомлений.
Я получаюЯ отправил следующее письмо от Google:
Последнее напоминание: Обновите GCM до облачных сообщений Firebase до 29 мая
Привет, Роберто, Вы получаете это сообщение, потому что являетесь владельцем Firebase.проект, который отправил сообщение через конечную точку Google Cloud Messaging (GCM) за последние 28 дней.В прошлом году мы объявили, что серверные и клиентские API GCM устарели.Чтобы предотвратить перебои в работе вашей службы, вы должны перенаправить запросы сервера Cloud Messaging на конечную точку Firebase Cloud Messaging (FCM) по адресу fcm.googleapis.com/fcm/ до 29 мая 2019 года.
Мы также рекомендуемвы обновляете свои клиентские SDK с GCM до последней версии Firebase Cloud Messaging.Хотя существующие установки приложений, использующие методы GCM, будут продолжать работать, методы GCM не будут работать, если ваше приложение предназначено для будущих версий Android (после Android Q).
Что мне нужно сделать?
Проект, указанный ниже, использовал GCM в прошлом месяцеЧтобы продолжить отправку сообщений для этого проекта, обновите конечные точки сервера и обновите все приложения, связанные с этим проектом, до FCM SDK.В некоторых случаях конечными точками ниже могут быть имена хостов, которые ранее были объявлены устаревшими.Тем не менее, вы все равно должны перейти от них к 29 мая 2019 года.
• GXXXXXXXXXApp (gXXXXXXXXXapp): около 76 запросов к android.googleapis.com за последние 28 дней
Более того, если я попытаюсь отправить тестовое сообщение с портала Azure, это будет результат:
Я беспокоюсь, что после 29 мая мое приложениепрекратит получать уведомления.
Как я могу принудительно использовать FCM вместо GCM?
Спасибо!