Могу ли я использовать PushKit для регулярной отправки сообщений без использования VoIP? Разрешит ли он запускать убитое приложение в фоновом режиме, если пользователь не реагирует на уведомление?

В PushKit упоминается, что мы можем использовать обычный push или VoIP push. Но я не нашел документации о том, какой PKPushType использовать для регулярного нажатия. Кто-нибудь пробовал обычный пуш с помощью PushKit? Если я не использую VoIP, возможно ли, что убитое приложение будет запущено в фоновом режиме, если оно получит push-уведомление? Это означает, что если приложение убито и приходит уведомление, а пользователь не выполняет никаких действий, может ли приложение быть запущено iOS в фоновом режиме, если я использую PushKit?


person SDTDMT    schedule 17.04.2015    source источник
comment
Вы узнали, запускает ли он убитое приложение и какой тип вам следует использовать?   -  person Rool Paap    schedule 17.06.2015
comment
возможно, вы не можете использовать pushkit для регулярного нажатия stackoverflow.com/questions/33649669/   -  person iamdavidlam    schedule 12.12.2015


Ответы (4)


Начиная с iOS 13.0, это больше НЕ допускается. Apple завершит работу приложения, если не представит CallKit до завершения didReceiveIncomingPush(withPayload:).

Сотрудник Apple ответил на аналогичный вопрос в этой беседе и сказал следующее:

В iOS 13.0 и более поздних версиях о входящих вызовах Voice over IP необходимо сообщать, когда они получены и до того, как метод didReceiceIncomingPush () завершит выполнение с использованием инфраструктуры CallKit, иначе система завершит работу вашего приложения.

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

По сути, вы больше не можете использовать push-уведомления VoIP для обмена сообщениями, отличными от VoIP, и для них нужно будет использовать регулярные push-уведомления.

Об этом было объявлено во время сеанса WWDC «Улучшения в фоновом исполнении приложений» https://developer.apple.com/videos/play/wwdc2019/707/

К сожалению, больше нет. Для стандартных push-сообщений нам придется использовать обычную структуру UINotification.

person Alexander W    schedule 30.09.2019
comment
Это означает, что мы возвращаемся к нормальной APNS, которая не помогает, если приложение было полностью закрыто пользователем? нет возможности выполнить блок кода, когда приложение получает уведомления, когда оно завершено пользователем? - person Omarj; 29.03.2020

Я не уверен, что вы имеете в виду под «обычным push» с PushKit, но вы можете использовать его для регулярной отправки уведомления, хотя я думаю, что он всегда будет выполнять ваш код, например, тихое удаленное уведомление (возможно, это то, что вам интересно ).

Если вы используете PushKit, он действительно запускает приложение при получении уведомления, даже если оно было принудительно отключено пользователем. См. этот ответ. Я бы просто добавил, что вам, вероятно, понадобится возможность передачи голоса по IP для достижения этого эффекта.

person 27 de Abril    schedule 30.06.2015

Еще один важный момент, который необходимо отметить из документации:

В отличие от пользовательских уведомлений, которые поддерживаются платформой UserNotifications, уведомления PushKit никогда не предоставляются пользователю - они не представляют значки, предупреждения или звуки.

person s.zainulabideen    schedule 27.07.2018

Изменить: этот ответ больше не действителен.


Да, можете, проверьте Документ Apple

Платформа PushKit предоставляет классы для ваших приложений iOS для получения push-уведомлений с удаленных серверов. Пуши могут быть одного из двух типов: стандартные и VoIP. Стандартные push-уведомления могут доставлять уведомления, как и в предыдущих версиях iOS.

person Alaa Eldin    schedule 01.01.2017
comment
этого предложения больше нет в этом документе. поэтому я не знаю, применимо ли это здесь больше ... - person logoff; 20.09.2017
comment
Спасибо @logoff за упоминание об этом! - person Alaa Eldin; 22.09.2017