iOS 13 и тихие уведомления - PullRequest
       48

iOS 13 и тихие уведомления

1 голос
/ 20 апреля 2020

У меня действительно странная проблема, когда я не могу точно объяснить причину root. Наше приложение обычно функционировало для фоновых / тихих уведомлений для ios12 и ios13 вплоть до нескольких недель go. Итак, немного справочной информации:

  1. Мы используем SNS для отправки визуальных / звуковых и тихих фоновых уведомлений.
  2. Нам известно о apns-pu sh - введите заголовок, который требуется для ios13. SNS автоматически обрабатывает этот новый заголовок, и наше ручное тестирование (т.е. без SNS) также дало те же результаты.
  3. Автоматические уведомления (т. Е. Контент: 1) всегда не работают на ios13.3 (или выше), но всегда работают на ios12.4 (и ниже).
  4. В нашем быстром коде мы используем: didReceiveRemoteNotification: fetchCompletionHandler для тихих уведомлений. Мы также используем userNotificationCenter (с willPresent и didReceive). Всякий раз, когда мы отправляем звуковые / визуальные уведомления, willPresent запускается на ios12 и ios13. На ios12 тихие уведомления запускают didReceiveRemoteNotification: fetchCompletionHandler, но ничего с ios13.
  5. Во время нашего тестирования мы успешно отправили пустой тип оповещения, чтобы вызвать тихое уведомление на ios13, и это также работает на ios12 (это вызывает willPresent). Это похоже на хак, потому что, скорее всего, оно на мгновение разбудит устройство и уведомление исчезнет, ​​если приложение работает в фоновом режиме.
  6. В других viewcontrollers мы наблюдаем NotificationCenter на получение сообщений для принятия соответствующих действий.

Мне кажется, {"content-available": 1} никогда не работает на ios13 и работает на ios12. Также didReceiveRemoteNotification: fetchCompletionHandler никогда не вызывается на ios13, а на ios12. Наше намерение с тихими уведомлениями с (т.е. с content-available: 1) состоит в том, чтобы обновить sh подробности из нашего сервиса, когда происходят изменения, когда приложение находится на переднем или заднем плане.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 25 апреля 2020

Мне удалось решить эту проблему. Однако прежде чем перейти к решению, хочу упомянуть, что столкнулся с этой проблемой только на iOS13 и с тихими уведомлениями. Тот же код работал с iOS12 с той же функцией.

Наше приложение имеет отдельный экран для запроса разрешений уведомлений при первом запуске приложения. На этом этапе мы регистрируем устройство для уведомлений. В следующий раз, когда приложение будет запущено, мы больше не показываем этот экран. Чтобы заставить его работать на ios13, нам приходилось каждый раз заново регистрироваться в APNS в didFinishLaunchingWithOptions AppDelegate. Опять же, на iOS12 тихие уведомления работали без перерегистрации в APNS, но на iOS13 мы должны перерегистрироваться каждый раз.

Надеюсь, это поможет кому-нибудь еще столкнуться с этой проблемой.

...