Как стать автором
Обновить

Когда почта доставляет: боремся с потерями push-уведомлений в iOS

Блог компании Конференции Олега Бунина (Онтико)ПрограммированиеРазработка под iOSРазработка мобильных приложенийДизайн мобильных приложений
Всего голосов 30: ↑30 и ↓0+30
Просмотры11K
Комментарии 9

Комментарии 9

Apple старается изо всех сил чтобы не дать своим пользователям возможность нормально работать с любым сервером посредством IMAP IDLE.

мне казалось, что это сделано ради экономии батарейки — через один канал связи с APNs можно получать нотификации для всех приложений (соответственно меньше открытых tcp-соединений, keep-alive пакетов и т.п.)

Вы серьёзно думаете что плюс один открытый сокет сколь-нибудь заметно влияет на энергоэффективность?
Я здесь ничего, кроме попытки ограничения пользователей для защиты своей поляны (прибылей) не вижу. Из той же оперы и невозможность задать опрос входящей почты чаще чем раз в 15 минут.

Вы серьёзно думаете что плюс один открытый сокет сколь-нибудь заметно влияет на энергоэффективность?

вот именно так думает автор каждой программы

от создателей "ещё 5 минуточек"

Вы, как я понимаю, наверное, отправляете только push'ы с нотификацией. То есть сервисных у вас нет. Дело то вот какое,
Для того, чтобы push-уведомление стало silent, необходимо в payload указать: «content-available»: 1. И не указывать alert, sound и badge ключи в payload — они совершенно бесполезны для push-уведомления, которое не будет показано пользователю.

Это действительно так, но в случае если приложение активно или свёрнуто, но не закрыто (!), то есть (foreground || background) && !killed. По крайней мере, мне не удалось обойти это, хотя появился такой эффект только в 10 iOS'е. Вы с таким не сталкивались?
> И не указывать alert, sound и badge ключи в payload — они совершенно бесполезны для push-уведомления, которое не будет показано пользователю.

Протестую! badge в таком пуше будет «крутить» счётчик непрочитанных на иконке приложения.
APNs не хранит более одного push по приложению на устройстве. Если, пока пользователь офлайн, ему приходит несколько уведомлений, когда он выйдет онлайн, он увидит только последнее сообщение.

Не совсем понятно, сначала речь о хранении на устройстве, потом о том, что пользователь оффлайн. Речь о хранении в облаке?
А у вас есть график со временем доставки пушей до пользователей? Через сколько доставляется 50% отправляемых пушей? Через сколько 70%?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.