我写了一些代码来启动来自String的电话,如附图。 [功能:phoneCallInitiation] [1]
某些电话号码可以使用02-123-1234这样的格式启动,但有些电话号码031-123-1234无法启动,但我可以看到phoneNumberString运行良好。
你能猜出有什么理由像这样工作吗?
func callButtonPressed () {
let alertViewController = UIAlertController(title: NSLocalizedString("Call", comment: ""), message: "\(storeToDisplay.phoneNumber!)", preferredStyle: .alert)
alertViewController.addAction(UIAlertAction(title: "Call", style: .default, handler: { (alertAction) -> Void in
let phoneNumberString = "tel://\(self.storeToDisplay.phoneNumber!)"
print("This is phonenumber: \(phoneNumberString)")
if let url = URL(string: phoneNumberString) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
print("WHAT Happenes")
}
}))
alertViewController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: { (alertAction) -> Void in
alertViewController.dismiss(animated: true, completion: nil)
}))
present(alertViewController, animated: true, completion: nil)
}
答案 0 :(得分:0)
如果您的号码是(“1234567890”),则UIApplication仅适用或接受。所以你需要从字符串中删除“”和“ - ”。
希望以下链接对您有所帮助。
答案 1 :(得分:0)
如果您在模拟器中使用您的应用程序,那么您将找不到任何发生的事情。如果您使用的是模拟器,请尝试在实际设备上运行。
试试这个
let replaced = self.storeToDisplay.phoneNumber!.replacingOccurrences(of: "-", with: "")
let phoneNumberString = "tel://\(replaced)"
并添加
if let url = URL(string: "telprompt://\(replaced)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
否则,如果你想直接打电话
if let url = URL(string: "tel://\(replaced)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}