IOS - лучшая практика для отправки уведомлений о входящих звонках в VoIP-приложении
Первым решением, которое я могу придумать для уведомления о входящем вызове, является служба Apple Push Notification. Однако это не гарантируется.. существует относительно высокая вероятность того, что он может потеряться.. и в приложении VoIP уведомление о входящем звонке настолько важно, что я не могу позволить себе пропустить его слишком часто...
Таким образом, я последовал советам и включил фоновый режим, чтобы сохранить приложение в ожидании и прослушивать приглашение на входящий вызов. По правде, я должен просто показать локальное уведомление, когда приложение получит приглашение на входящий вызов. Это работает очень хорошо, когда приложение находится в фоновом режиме/неактивно. ОДНАКО, когда пользователь убивает приложение вручную, никакой код не будет выполнен, поэтому приложение не получит приглашение на входящий вызов в таком состоянии... И из-за этого конкретного сценария мне все равно придется полагаться на удаленное push-уведомление.
То, что я пытаюсь достичь, - это... преждевременное получение удаленного уведомления, если оно поступит, а затем больше не показывать локальное уведомление. Если он потерян, тогда вы увидите локальное уведомление, чтобы пользователь всегда получал уведомление.
Проблема в том, что... У меня нет способа узнать, прибыло ли удаленное уведомление.
Я хочу знать, что лучше всего обрабатывать уведомления о входящих звонках для VoIP-приложения?
Ответы
Ответ 1
Из appleDoc Документы разработчика Apple. (Обновленная ссылка)
В iOS 8 и более поздних версиях приложения для передачи голоса по IP (VoIP) регистрируются для уведомлений UIRemoteNotificationTypeVoIP вместо использования этого метода. Использование push-уведомлений устраняет необходимость использования обработчика тайм-аута для регистрации в службе VoIP. Вместо этого, когда поступают вызовы для пользователя, служба VoIP отправляет VoIP-уведомление на устройство пользователя. После получения этого уведомления устройство запускает или пробуждает приложение по мере необходимости, чтобы оно могло обрабатывать входящий вызов.
Ответ 2
Просто играйте очень длинный звук, когда приходит APNS.