Xamarin.Forms AppCenter Нажмите, когда приложение в фоновом режиме или прекращено - PullRequest
0 голосов
/ 08 июля 2019

Я реализую приложение с использованием 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) Если я завершил работу приложения, уведомление не будет отображаться вообще.

Сводка

  1. Когда приложение на переднем плане - Уведомление (НЕТ);Сообщение и заголовок (ДА)
  2. Когда приложение является фоновым - уведомление (ДА);Сообщение и заголовок (НЕТ)

Ответ: В Android введите CustomData, чтобы сохранить необходимые данные.

Когда приложение убито - уведомление (НЕТ);Сообщение и заголовок (НЕТ)

Мой вопрос сейчас

1) Что я сделал на Android (Java), так это то, что мне нужно реализовать Service и расширить GcmListenerService.Это то, что мне нужно что-то подобное для Xamarin.Forms / Xamarin.Android?

2) Как насчет Xamarin.iOS?(Я еще не начал тестирование) Что мне делать там?

Спасибо.

...