我想打电话,这是我的代码:
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.)"
任何想法都这样做?
答案 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。