В PushKit упоминается, что мы можем использовать обычный push или VoIP push. Но я не нашел документации о том, какой PKPushType использовать для регулярного нажатия. Кто-нибудь пробовал обычный пуш с помощью PushKit? Если я не использую VoIP, возможно ли, что убитое приложение будет запущено в фоновом режиме, если оно получит push-уведомление? Это означает, что если приложение убито и приходит уведомление, а пользователь не выполняет никаких действий, может ли приложение быть запущено iOS в фоновом режиме, если я использую PushKit?
Могу ли я использовать PushKit для регулярной отправки сообщений без использования VoIP? Разрешит ли он запускать убитое приложение в фоновом режиме, если пользователь не реагирует на уведомление?
Ответы (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.
Я не уверен, что вы имеете в виду под «обычным push» с PushKit, но вы можете использовать его для регулярной отправки уведомления, хотя я думаю, что он всегда будет выполнять ваш код, например, тихое удаленное уведомление (возможно, это то, что вам интересно ).
Если вы используете PushKit, он действительно запускает приложение при получении уведомления, даже если оно было принудительно отключено пользователем. См. этот ответ. Я бы просто добавил, что вам, вероятно, понадобится возможность передачи голоса по IP для достижения этого эффекта.
Еще один важный момент, который необходимо отметить из документации:
В отличие от пользовательских уведомлений, которые поддерживаются платформой UserNotifications, уведомления PushKit никогда не предоставляются пользователю - они не представляют значки, предупреждения или звуки.
Изменить: этот ответ больше не действителен.
Да, можете, проверьте Документ Apple
Платформа PushKit предоставляет классы для ваших приложений iOS для получения push-уведомлений с удаленных серверов. Пуши могут быть одного из двух типов: стандартные и VoIP. Стандартные push-уведомления могут доставлять уведомления, как и в предыдущих версиях iOS.