在某些号码上没有启动ios 10 Swift电话

时间:2017-02-20 05:40:03

标签: ios swift

我写了一些代码来启动来自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)
}

2 个答案:

答案 0 :(得分:0)

如果您的号码是(“1234567890”),则UIApplication仅适用或接受。所以你需要从字符串中删除“”和“ - ”。

希望以下链接对您有所帮助。

https://stackoverflow.com/a/39849592/1811281

https://stackoverflow.com/a/27515978/1811281

答案 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)
            }