На IOS9 если iPhone находится в режиме экономии батареи, обратный вызовIOS9 Нажмите режим вкладчика батареи - didReceiveRemoteNotification не называется
application:didReceiveRemoteNotification:fetchCompletionHandler:
не называется. Вместо этого я получаю следующее предупреждение в консоли
High Priority Push: com.your-company.app - Battery Saver Mode Enabled
При использовании PushKit это похоже на работу.
Испытывает ли кто-либо другое подобное поведение?
Любые другие обходные пути?
Мне нравится, когда вы отвечаете, Джо Кастро. Извините, но у меня нет достаточной репутации. Когда кто-то хочет сделать надежное приложение для обмена сообщениями без VoIP, кажется, что нелегко, чтобы получить уведомление о появлении новых сообщений. Если вы хотите избежать опроса. PushKit может быть разрешен только для VoIP-приложений. Существуют ли другие условия - кроме режима энергосбережения или нескольких уведомлений, где толчки не должны работать? –
У Apple, похоже, есть эвристика, которую они не хотят документировать (я ожидаю, потому что они не хотят, чтобы люди полагались на них), когда они решили не нажимать уведомления. Один из сценариев - когда телефон не находится в сети, и как только он вернется, ваше приложение может получить только последнее. Другим разумным сценарием является то, что Apple решает, что ваше приложение отправляет слишком много уведомлений относительно того, сколько пользователь активно использует приложение. Руководство Apple по этому поводу обычно гласит: «Напиши уведомления, как будто они надежные, но убедитесь, что ваше приложение будет работать, если ни один из них не появится». –
Спасибо за ваши усилия, Джо. Я нахожу, что есть разница в том, что вы не получаете толчков и получаете не так много толчков. Последнее в порядке, первое - нет ;-) –