Push-уведомления Appcenter не получены Xamarin Forms на платформе iOS - PullRequest
0 голосов
/ 11 мая 2019

Я реализовал push-уведомления с помощью AppCenter в ASP.Net Core Web API.Сервер отправляет HTTP-запросы в AppCenter, который отвечает за отправку уведомлений на каждую платформу Android и iOS.

Мобильные приложения разрабатываются с помощью форм Xamarin.Я следовал документации Microsoft здесь

Приложение Xamarin для Android получает каждое push-уведомление, как талисман.

Проблема в приложении Xamarin для iOS.Устройства не получают push-уведомления.

Вот настройки iOS, которые я сделал:

  • Включены push-уведомления в Правах на производство (не разработка)
  • Созданоключ APN для push-уведомлений в моей учетной записи разработчика Apple для производства
  • Предоставлен ключ iOS APN для настроек AppCenter (с идентификатором APP, префиксом ...)
  • Включены удаленные уведомления в фоновом режиме в информации.plist
  • Отключить Swizzling, добавив ключ AppCenterAppDelegateForwarderEnabled в info.plist
  • Переопределить DidReceiveRemoteNotification в AppDelegate и внедрить методы RegisteredForRemoteNotifications, FailedToRegisterForRemote26 * Уведомленияприложение для TestFligth в рабочем режиме.

    При запуске приложения я получаю InstallId устройства appcenter, вызывая метод AppCenter.GetInstallIdAsync().

    Наконец, когда отправляется push-уведомление, ничего не происходит.И у меня нет журналов для поиска проблемы.

    Есть что-то, что я пропустил, чтобы это работало?

1 Ответ

0 голосов
/ 20 мая 2019

AppCenter предоставляет разные AppSecret для каждой платформы.Вы должны сделать:

        if (Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS)
        {
            //Start AppCenter Push notification with iOS app secret
            AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
        }
        else if (Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.UWP)
        {
            //Start AppCenter Push notification with UWP app secret
            AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
        }
        else if(Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.Android)
        {
            //Start AppCenter Push notification with Android app secret
            AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
        }
...