Уведомления FCM не приходят (на устройство), когда Интернет слегка нарушен - FlutterIOS

Программируем под IOS
Ответить
Anonymous
 Уведомления FCM не приходят (на устройство), когда Интернет слегка нарушен - Flutter

Сообщение Anonymous »

Я столкнулся с проблемой использования FCM в моем приложении Flutter при получении уведомлений.
Проблема связана с получением уведомлений на стороне клиента, когда Интернет слегка нарушен из-за транзитного соединения (1 или 2 секунды), после чего клиент не может получить push-уведомление от FCM до тех пор, пока не будет выполнено правильное отключение и повторное подключение к сети.
Для воспроизведения я подключил клиента (мобильный телефон с приложением и FCM) к Точка доступа Wi-Fi (с использованием мобильных данных) и отправка уведомлений. Он работает так, как ожидалось. Теперь, если я выключу и снова включу мобильные данные (не точку доступа Wi-Fi) (на очень короткую продолжительность, 1 или 2 секунды). После этого мобильное приложение не получало сообщений (Push-уведомления) до тех пор, пока я не отключил точку доступа и Wi-Fi на клиентском устройстве не подключился к какой-либо другой сети (правильное отключение сети)
Для подтверждения я протестировал то же поведение в Microsoft Teams, и там возникла та же проблема. Но, что удивительно, в WhatsApp нет этой проблемы (возможно, они решают ее каким-то другим способом).
Для ясности: я столкнулся с этой проблемой на устройствах iOS и Android. Чтобы решить эту проблему, в iOS я нашел способ перерегистрироваться для получения удаленных уведомлений.

Код: Выделить всё

// Unregister from APNs
UIApplication.shared.unregisterForRemoteNotifications()

// Re-register
UIApplication.shared.registerForRemoteNotifications()
Поскольку мое приложение построено на флаттере, я использовал каналы методов для выполнения собственного (Swift) кода из флаттера при повторном подключении к Интернету. Даже я пытался сделать это вручную (с помощью кнопки тестирования из моего приложения Flutter), и как только я это делаю (перерегистрация), push-уведомления снова начинают работать как обычно.
Итак, что происходит (насколько я понимаю), как только Интернет слегка нарушается, FCM не подключается к Интернету снова, и соединение устаревает.
Я не уверен, что это (обходной путь для iOS). это правильный или рекомендуемый способ решения этой проблемы.
Кроме того, я не нашел ничего, связанного с Android, чтобы решить эту проблему. Однако я заметил одну вещь на Android (Google Pixel): при наборе кода *#*#426#*#* он отображает инструмент диагностики FCM, где мы можем визуализировать, установлено или нет соединение FCM. Итак, я отслеживал поведение FCM с помощью описанного выше механизма, и статус FCM был «Подключен» более 5 минут (дальше я не пошел). И в то время на обратном канале не было подключения к Интернету (мобильные данные были отключены), была подключена только точка доступа.
Я проведу еще несколько исследований с использованием некоторых других приложений, чтобы выяснить, есть ли у них такая же проблема, или найти способ повторного подключения на Android (вручную).
Если кто-нибудь может предоставить какую-либо помощь или отзыв, буду рад получить это!
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... -disturbed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»