CallKit: - Callkit работает, но вызываемый не получает звонок - PullRequest
5 голосов
/ 06 февраля 2020

Я хочу разработать приложение SOS. Когда я пытаюсь использовать URL-схему openURL (), он отображает предупреждение, но мое требование - подключить вызов без предупреждения или всплывающего окна при попытке вызова. Поэтому я нашел решение, используя CallKit. Когда я реализовал CallKit в своем приложении, он не запрашивает никакого разрешения, исходящий вызов размещается, но вызываемый не получает никакого вызова. Есть ли какое-то решение для этого?

Я попробовал следующий код для подключения вызова.

@IBAction func buttonCallTapped(_ sender: Any) {

    let provider = CXProvider(configuration: CXProviderConfiguration(localizedName: "My App"))
    provider.setDelegate(self, queue: nil)
    let controller = CXCallController()
    let transaction = CXTransaction(action: CXStartCallAction(call: UUID(), handle: CXHandle(type: .phoneNumber, value: "\(number)")))
    controller.request(transaction, completion: { error in })

    DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 5) {
        provider.reportOutgoingCall(with: controller.callObserver.calls[0].uuid, connectedAt: nil)
    }
}

Ответы [ 2 ]

2 голосов
/ 06 февраля 2020

Вы просто не можете совершать стандартные нативные звонки через CallKit. Платформа CallKit, как четко указано в документации , предназначена для разработки пользовательских приложений VoIP и интеграции их с собственным интерфейсом телефона.

1 голос
/ 03 марта 2020

Любое приложение iOS не может выполнить собственный вызов без действий пользователя.

Будет отображаться предупреждение с номером телефона, и будут доступны две кнопки «Вызов» и «Отмена», которые представлены на уровне операционной системы.

Так же, как мы отображаются всплывающие окна для удаления фотографий из приложения «Фото».

Решение

Если вы хотите внедрить приложение SOS (Да, это возможно с помощью службы VoIP), но вы можете совершать звонки, когда приложение активный (может быть выполнен без действий пользователя, если имеется inte rnet соединение.)

Примечание: принимающая сторона также должна поддерживать VoIP.

Как для реализации VoIP

Нам необходимо разрешение услуг передачи голоса по IP для выполнения вызовов между iPhone устройствами.

В приложении VoIP должен быть включен фоновый режим в панель Xcode Project> Capabilities. Установите флажок для передачи голоса по IP

Также CallKit имеет отступ только для приложений VoIP. Если вы действительно хотите внедрить VoIP, следуйте Учебное пособие по CallKit

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