Я реализую приложение с использованием Xamarin.Forms и нацеливаюсь на Xamarin.Android и Xamarin.iOS.В настоящее время я пытаюсь добавить функцию Push из AppCenter.Я следовал инструкции на https://docs.microsoft.com/en-us/appcenter/sdk/push/xamarin-forms и добавил следующий код в мой App.xaml.cs
protected override void OnStart()
{
// Handle when your app starts
// This should come before AppCenter.Start() is called
// Avoid duplicate event registration:
if (!AppCenter.Configured)
{
Push.PushNotificationReceived += async (sender, e) =>
{
// Add the notification message and title to the message
var summary = $"Push notification received:" +
$"\n\tNotification title: {e.Title}" +
$"\n\tMessage: {e.Message}";
// If there is custom data associated with the notification,
// print the entries
if (e.CustomData != null)
{
summary += "\n\tCustom data:\n";
foreach (var key in e.CustomData.Keys)
{
summary += $"\t\t{key} : {e.CustomData[key]}\n";
}
}
await Application.Current.MainPage.DisplayAlert(e.Title, e.Message, MobileLibrary.Resources.Localization.txtOK);
// Send the notification summary to debug output
System.Diagnostics.Debug.WriteLine(summary);
};
}
AppCenter.Start("ios=XXX;android=XXX", typeof(Analytics), typeof(Crashes), typeof(Push));
}
В настоящее время я тестирую на Android .
У меня нет проблем с получением уведомления и сообщением на var summary
, когда приложение находится на переднем плане.Моя проблема, с которой я сталкиваюсь сейчас:
1) Когда приложение в фоновом режиме, я получаю уведомление.Когда я нажму на него, он войдет в событие PushNotificationReceived
, но e.Title
и e.Message
пусто.
Ответ: поместите необходимые данные в CustomData, и они будутподдерживается.
2) Если я завершил работу приложения, уведомление не будет отображаться вообще.
Сводка
- Когда приложение на переднем плане - Уведомление (НЕТ);Сообщение и заголовок (ДА)
- Когда приложение является фоновым - уведомление (ДА);Сообщение и заголовок (НЕТ)
Ответ: В Android введите CustomData, чтобы сохранить необходимые данные.
Когда приложение убито - уведомление (НЕТ);Сообщение и заголовок (НЕТ)
Мой вопрос сейчас
1) Что я сделал на Android (Java), так это то, что мне нужно реализовать Service и расширить GcmListenerService.Это то, что мне нужно что-то подобное для Xamarin.Forms / Xamarin.Android?
2) Как насчет Xamarin.iOS?(Я еще не начал тестирование) Что мне делать там?
Спасибо.