以编程方式使 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)
这段代码对我来说工作得很好。
您好,我正在以编程方式进行 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)
这段代码对我来说工作得很好。