以编程方式使 phone 调用在 swift 3 中崩溃

Programmatically make phone call crash in swift 3

您好,我正在以编程方式进行 phone 调用。我从后端收到的 phone 号码类似于 61234567890。它没有附带 +。这就是我打开电话的方式。

self.openAppURL(strUrl: "tel://\(selectedEmployeeContact)")

func openAppURL(strUrl:String)
{
    let myurl=URL(string: strUrl)
    let isInstalled=UIApplication.shared.canOpenURL(myurl!)
    if(isInstalled)
    {
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(myurl!)
        } else {
            UIApplication.shared.openURL(myurl!)
        }
    }

}

我有一个 phone 号码的列表。如果数字有 10 位,则它不会崩溃。但是这个数字崩溃了。为什么它不由 canOpenURL 处理。如何正确处理。

请帮助我。

您可以使用 guard let 来防止崩溃。

    guard let number = URL(string: "tel://61234567890") else { return }
    UIApplication.shared.open(number)

这段代码对我来说工作得很好。