swift3 - canOpenURL:URL tel失败

时间:2017-03-13 15:43:57

标签: ios swift swift3

我想打电话,这是我的代码:

if let urlMobile = NSURL(string: "tel://076938483"), UIApplication.shared.canOpenURL(urlMobile as URL) {

                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(urlMobile as URL, options: [:], completionHandler: nil)
                }
                else {
                    UIApplication.shared.openURL(urlMobile as URL)
                }
            }

我使用swift 3这样做但是我收到了这个错误:

-canOpenURL: failed for URL: "tel://09178883828" - error: "The operation couldn’t be completed. (OSStatus error -10814.)"

任何想法都这样做?

6 个答案:

答案 0 :(得分:5)

您的代码完美无缺。如果您使用的是模拟器,请在实际设备上运行它。您无法在Mac / MacBook上模拟通话。

请查看Apple文档中的Simulator Hardware Actions

答案 1 :(得分:2)

某些LSApplicationQueriesScheme在Simulator上不起作用。错误代码-10814适用于kLSApplicationNotFoundErr。模拟器无法为电话启动拨号盘。所以在iPhone设备上运行它。

这对我有用!!!

代码应

if let url = NSURL(string: "tel://\(yourNumber)"), UIApplication.shared.canOpenURL(url as URL) {
  UIApplication.shared.open(url as URL, options: [:], completionHandler: nil)
}

答案 2 :(得分:1)

网址应为:

if let urlMobile = NSURL(string: "tel:///076938483"), UIApplication.shared.canOpenURL(urlMobile as URL) {

答案 3 :(得分:1)

let phonenumber = "076938483"
guard let url = URL(string: "tel://\(phonenumber )") else {
            return
            
        }
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url)
        } else {
            UIApplication.shared.openURL(url)
        }

在URL生成的其他部分,打印任何内容,如果要打印,则需要检查电话号码的格式。

答案 4 :(得分:0)

@IBAction函数调用(_发件人:任意){

select * from `mytablename` where segmentering='segmentering';

答案 5 :(得分:0)

@objc func callBtn() {
       let userPhone = String((phoneNum.filter {!" \n\t\r".contains($0)}))
       if let url = URL(string: "tel://\(phoneNum)"), UIApplication.shared.canOpenURL(url) {
           DispatchQueue.main.async {
               UIApplication.shared.open(url)
           }
        }
    }

注意:当您使用真实设备而非模拟器运行时,此代码可以工作。并且不要忘记在您的info.plist中添加LSApplicationQueriesSchemes。