Я реализовал push-уведомления с помощью AppCenter в ASP.Net Core Web API. Сервер отправляет HTTP-запросы в AppCenter, который отвечает за отправку уведомлений на каждую платформу Android и iOS.
Мобильные приложения разрабатываются с помощью Xamarin Forms. Я следовал документации Microsoft здесь
Приложение Xamarin для Android получает каждое push-уведомление как шарм.
Проблема связана с приложением Xamarin iOS. Устройства не получают никаких push-уведомлений.
Вот настройки iOS, которые я сделал:
Затем я успешно опубликовал приложение в TestFligth в рабочем режиме.
При запуске приложения я получаю InstallId устройства appcenter, вызывая метод AppCenter.GetInstallIdAsync()
.
Наконец, когда отправляется push-уведомление, ничего не происходит. И у меня нет логов для поиска проблемы.
Есть ли что-то, что я пропустил, чтобы заставить его работать?
Да, я пробовал все зарегистрированные устройства iOS, но все равно ничего не получил
Вы тестируете на реальном устройстве? Проверьте шаги здесь.
Да, я тестирую реальное устройство через TestFligth. Ссылка, которую вы упомянули, дает шаги при использовании непосредственно APNS, но в моем случае я использую AppCenter, который выполняет все необходимые шаги для регистрации для push-уведомлений... Кроме того, мы запустили приложение iOS, у меня есть всплывающее окно с предупреждением, которое запрашивает чтобы разрешить моему приложению показывать уведомления. Это означает, что AppCenter выполняет свою работу...
Раньше я не пользовался AppCenter. Есть много возможностей, которые могут вызвать эту проблему. Я предлагаю вам проверить, используете ли вы производственную сертификацию вместо сертификации разработки.
Да, я в производственном случае (сертификат, права и профиль обеспечения)...
Хорошо, я заметил на портале AppCenter, что AppSecret не одинаков для каждой платформы. Это может быть причиной того, что он не работает на iOS. В документах об этом не сказано...
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));
}
Вы пытались отправить Push из консоли App Center вместо вашего бэкэнда с полученным идентификатором установки?