it-swarm.com.ru

баннер push-уведомлений iOS, показанный дважды для одного Push

Я заметил, что отправка Push-уведомления приводит к следующему поведению:

 Push Banner is shown twice?

Посмотрите, как баннер показывается второй раз, после небольшой задержки?

Сначала я подумал, что наш сервер по ошибке отправлял 2 Push-уведомления, одно за другим.

Однако это похоже на поведение iOS по умолчанию для одного Push-уведомления. Баннер показывается, затем сразу же «снова показывается». В результате этот нервный пользовательский интерфейс показан на рисунке. Баннер кажется полученным дважды.

Протестировано с использованием iOS 9.0.2.

Я не помню, чтобы такое поведение наблюдалось в других приложениях, отправляющих мне Push-уведомления. Я делаю что-то не так, чтобы баннер показывался дважды?

Radar:

Инжиниринг определил, что ваш отчет об ошибке (23133694) является дубликатом другой проблемы (23130766) и будет закрыт.

41
pkamb

Согласно этот ответ по схожему вопросу, эта проблема была зарегистрирована как rdar: // 23569779 и должна быть исправлена ​​в публичном выпуске iOS 9.3.

Пожалуйста, оставьте комментарий, если вы воспроизводите эту проблему в iOS 9.3+

Предположительно исправлено в:

iOS 9.2.1 beta (сборка: 13D11)

0
pkamb

У меня возникла та же проблема, но после бесчисленных часов попыток отладки я понял, что дважды вызывал registerUserNotificationSettings(settings) в didFinishLaunchingWithOptions:. Убедитесь, что вы не делаете то же самое

32
RukyO

Вы уверены, что все делаете правильно?
Если вы предоставите больше кода, вам будет легче найти ошибку. Это определенно не ошибка iOS.


Основные вещи, которые нужно проверить при возникновении проблем с серверными уведомлениями:

1. Проверьте свой профиль обеспечения и очистите все неиспользованные сертификаты .
2. Убедитесь, что конфигурация вашего сервера в порядке. Опять же, для подробного ответа требуются дополнительные сведения.

Если вы делаете это в автономном режиме, то обычно вы что-то пропустили в своем коде, или ваш обработчик для изолированных сообщений вызывается два раза. 

3
Bagrat Kirakosian

Эта проблема возникла для двух устройств, которые мы использовали с версиями ios 9.3.3 и ios 9.2. Но эта проблема возникла не для устройства под управлением ios 8.2, а для другого устройства под iOS 10 (протестировано на 10.3)

Проблема возникала на устройствах с 9.3.3 и 9.2 при каждой новой установке. Но перезапуск устройства, казалось, решил проблему. Хотя это НЕ решение, которое мы можем предложить клиентам.

В журналах консоли системы мы получили сообщение «Несбалансированные вызовы, чтобы начать/завершить переходы внешнего вида для SBBannerButtonViewController», когда это произошло.

Это похоже на проблему с некоторыми устройствами, имеющими версии 9.x, и должно нормально работать на устройствах с iOS 10.0 и выше.

3
Swasidhant

Я думаю, что здесь принят неправильный ответ (если речь идет о переходе с Parse на OneSignal). Потому что для OneSignal, похоже, нет никакого правильного решения для этого. Я также ищу решение, если у кого-то есть. Единственный обходной путь для этого был перезагрузить телефон.

Но это странно. Мы не можем просить всех пользователей перезагрузить свое устройство.

2
Bhumi Goklani

Вы используете базу данных для хранения идентификатора устройства?

Если да, то может быть сохранен идентификатор устройства два раза. Если возможно, очистите базу данных и попробуйте отправить ее снова

2
Nasir Munda

Мы столкнулись с той же проблемой в IOS 9.3.1 

Мы использовали городской дирижабль для управления уведомлениями, и это было нашей установкой

let config = UAConfig.default()

UAirship.setLogging(false)
UAirship.takeOff(config)
UAirship.Push().userPushNotificationsEnabled = true
UAirship.Push().notificationOptions = [.alert, .badge, .sound]
UAirship.Push().backgroundPushNotificationsEnabled = false
UAirship.Push().pushNotificationDelegate = self

После многих попыток мы просто удалили следующую строку, и она сработала!

UAirship.Push().notificationOptions = [.alert, .badge, .sound]

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

1
Melvin John

Я знаю, что этот ответ через пару лет после оригинального поста, но в случае, если это кому-нибудь поможет ...

В моем случае я использовал уведомления CloudKit и случайно создал две подписки, которые отслеживали один и тот же тип записи!

1
mlecoz