首页 > 解决方案 > Swift:在特定场景下拨打电话并不总是有效

问题描述

在我的控制器中,我有 2 个按钮,一个用于发送短信的按钮和一个用于拨打电话的按钮。

问题是拨打电话并不总是有效。

要重现这一点:

它也适用于:

这是我的代码:

    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:)返回的布尔值始终为真,即使未显示调用的弹出窗口

标签: iosswifturl

解决方案


推荐阅读