Swift: звонок не всегда работает в определенных c сценариях - PullRequest
1 голос
/ 28 мая 2020

В моем контроллере есть 2 кнопки, кнопка для отправки sms и кнопка для совершения звонка.

Проблема в том, что звонок не всегда работает.

Чтобы воспроизвести это:

  • Я нажимаю кнопку sms
  • Я выхожу из приложения sms, чтобы вернуться в свое приложение
  • Я нажимаю кнопку вызова и он НЕ РАБОТАЕТ
  • Нажимаю на кнопку смс
  • Я выхожу из смс приложения, чтобы вернуться в свое приложение
  • Нажимаю на кнопку вызова и ЭТО РАБОТАЕТ

Он также работает, если:

  • Как только я вхожу в свой контроллер в первый раз, я нажимаю кнопку вызова.
  • Но как только я нажимаю на кнопка sms cel воспроизводит описанный выше поток.

Вот мой код:

    func makeCall() {
        openExternalUrl(string: "telprompt://\(phone)")
    }

    func makeSMS() {
        openExternalUrl(string: "sms:\(phone)")
    }

    func openExternalUrl(string: String) {
        if let url = URL(string: string), UIApplication.shared.canOpenURL(url) {
            UIApplication.shared.open(url)
        }
    }

Я пробовал telprompt://\(phone) и tel://\(phone) и получил тот же результат.

Когда я печатаю завершение open(url:,completion:), возвращаемое логическое значение всегда истинно, даже если всплывающее окно вызова не отображается

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