我打电话的功能有什么问题

时间:2015-11-05 21:56:55

标签: ios swift

这是我拨打电话的代码

let phoneCall = phoneNumberTF.text
        if let phoneCall = phoneCall {
            let url = NSURL(string: "tel://\(phoneCall)")
            UIApplication.sharedApplication().openURL(url!)

        }else {
            let alert = UIAlertController(title: "Error", message: "not correct phone", preferredStyle: .Alert)
            let action = UIAlertAction(title: "Retry", style: .Default, handler: nil)
            alert.addAction(action)
        }

我在日志中收到此错误

ERROR: There is no registered handler for URL scheme tel

提示:我已经检查了这个问题,但解决方案并不适用于我 Calling a phone number in swift

2 个答案:

答案 0 :(得分:2)

正确的网址方案是这样的 tel:PHONE_NUMBER(没有包含的斜杠)。您还应该通过致电UIApplication.sharedApplication.canOpenURL() ...

来检查应用程序是否可以打开您提供的URL
let phoneNumber = "123-456-789"
let phoneURL = NSURL(string: "tel:\(phoneNumber)")!
if UIApplication.sharedApplication().canOpenURL(phoneURL) {
  UIApplication.sharedApplication().openURL(phoneURL)
}

答案 1 :(得分:1)

根据Apple文档https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/PhoneLinks/PhoneLinks.html

正确的格式为tel:。所以首先改变它,然后你应该在做UIApplication.sharedApplication.canOpenURL()之前检查它。如果您在模拟器上运行它将无法正常工作。