Показывать пользовательский интерфейс после ответа на звонок с экрана блокировки - PullRequest
0 голосов
/ 19 февраля 2019

Я разрабатываю приложение для вызова, такое как Whatapp и Skype.Мой вопрос заключается в том, что, когда мой телефон заблокирован, и другой пользователь звонит мне, тогда с экрана блокировки я получу уведомление, и если я проведу по нему уведомление, то вызов автоматически будет получен (конечно, с использованием callkit)

Мне просто интересно, возможно ли видеть экран callkitUI таким же, как когда другой пользователь звонит мне, когда мой телефон разблокирован?

Это было бы очень полезно, если кто-то знает детали, решения или любые другиеинформация об этом.

Я уже проверил следующие документы.

Apple CallKit

УЛУЧШИТЕ ВАШЕГО VOIP-ПРИЛОЖЕНИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, ИСПОЛЬЗУЯ PUSHKIT + CALLKIT

Учебное пособие по CallKit для iOS

Вот мой код.

func provider(_ provider: CXProvider, perform action: CXAnswerCallAction) {

    action.fulfill()

    print("=================CXAnswerCallAction============")

    self.window = UIWindow(frame: UIScreen.main.bounds)
    let storyboard = UIStoryboard(name: "VoipAcceptUser", bundle: nil)    
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "VoipAcceptUser")     
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

}

1 Ответ

0 голосов
/ 07 марта 2019

Система не будет предоставлять свои экраны вызовов вашему приложению, когда приложение работает на переднем плане.Вы должны сами предоставить экраны вызовов.

Используя CallKit framework, система полностью определяет, будет ли отображаться экран входящего вызова или нет.Только в трех известных мне случаях система предоставляет экран вызова для вашего приложения.

Известные случаи, когда система предоставляет экраны вызовов для вызовов VoIP:

  1. Когда телефонполучает вызов VoIP от службы push-уведомлений VoIP.Используя CallKit Framework, вы должны сообщить о новом экране входящего вызова объекту CXProviderDelegate.

  2. Когда телефон имеет активный регулярный (сотовый) вызов и получает вызов VoIP.Это работает, если вы установили в CXProviderConfiguration, что ваше приложение VoIP позволяет обрабатывать несколько вызовов.Если вы разрешили группировку вызовов и удержание вызовов, система предоставит пользовательский интерфейс для пользователя, чтобы обрабатывать переключение между обычными и VoIP-вызовами

  3. Когда у телефона есть активный обычный вызов, и пользователь начинает исходящий вызов VoIPИсходя из фона, экран системных вызовов останется включенным, чтобы предоставить пользователю пользовательский интерфейс для обработки нескольких вызовов (в том числе, если вы разрешили обработку нескольких вызовов в приложении)

Сводказаключается в том, что вам необходимо предоставить пользовательский интерфейс для приложения VoIP, по крайней мере, экранов исходящих и активных вызовов, и соответствующим образом обновить интерфейс в соответствии с состоянием вызова.

...