我正在尝试以编程方式请求电话,但无法从我的9位电话号码构造URL。当我尝试使用999999999电话号码进行尝试时,它可以正常工作,并且会要求通话
@IBAction func callButtonPressed(_ sender: UIButton) {
askForCall(to: "999999999")
}
func askForCall(to number: String) {
guard let url = URL(string: "tel:\(number)"), UIApplication.shared.canOpenURL(url) else { return }
UIApplication.shared.open(url)
}
但是当我使用真实电话号码736XXXXXX时,它什么也没显示。
注意:当我在没有canOpenUrl的情况下尝试操作时,它无法正常工作,因此我想问题在于根据我的真实号码构造网址
有什么想法吗?
答案 0 :(得分:1)
您应该输入"tel://" + number
而不是tel:\(number)
编辑2
尝试这样的事情
func call(phoneNumber: String) {
if let url = URL(string: phoneNumber) {
if #available(iOS 10, *) {
UIApplication.shared.open(url, options: [:],
completionHandler: {
(success) in
print("Open \(phoneNumber): \(success)")
})
} else {
let success = UIApplication.shared.openURL(url)
print("Open \(phoneNumber): \(success)")
}
}
}
let number = "736XXXXXX"
let phoneNumber = "tel://\(number)"
call(phoneNumber: phoneNumber)
尝试使用该数字,看看它是否比简单的代码更大的问题:)
答案 1 :(得分:0)
您需要将方案“ tel”添加到您的info.plist
<key>LSApplicationQueriesSchemes</key>
<string>tel</string>
然后正常使用:
guard let url = URL(string: "tel://\(phoneNumber)"), UIApplication.shared.canOpenURL(url) else {return}
if #available(iOS 10, *) {
UIApplication.shared.open(url)
} else {
UIApplication.shared.openURL(url)
}
祝你好运