【问题标题】:Open phone dial pad [duplicate]打开电话拨号盘[重复]
【发布时间】:2023-03-26 21:10:01
【问题描述】:

我正在尝试通过我的应用程序拨打电话,但我想在直接拨打电话之前打开电话拨号盘。但是使用自定义 url 方案是直接调用号码。

有什么方法可以打开吗?除了 CallKit 之外,我没有发现任何与此相关的内容,但那篇文章太过分了。

我试过了

let url : URL = URL(string: "tel:90634904")!
if UIApplication.shared.canOpenURL(url) {
      UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

我也按照建议尝试了这个

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

这两种方法都可以直接拨打电话,而无需打开我可以编辑的拨号盘。

【问题讨论】:

  • 我不相信有办法在不传递电话号码的情况下启动电话应用程序。
  • @chirag90 这些解决方案不起作用
  • 您需要向我们展示您已经尝试过哪些解决方案以及哪些解决方案不起作用,然后我们可能会为您提供帮助。
  • 更新了问题。请检查
  • 您是否遇到任何错误?

标签: ios swift


【解决方案1】:

我很快尝试制作一个带有按钮点击事件的简单应用程序来调用。看看下面的代码。

@IBAction func callButtonPressed(_ sender: Any) {
    let phone = 0123456789
    if let url = URL(string: "tel://\(phone)"), UIApplication.shared.canOpenURL(url) {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url)
        } else {
            UIApplication.shared.openURL(url)
        }
    }
}

您需要在 info.plist 中添加以下内容

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>tel</string>
</array>

我可以看到输出

P.S 此外,您需要在实际设备而不是模拟器上运行它。

【讨论】:

  • 这对你有用吗?
  • 这东西来了。但我希望它在拨号盘中打开,如果我愿意,我可以在其中编辑号码或选择不同的 SIM 卡进行呼叫
猜你喜欢
  • 1970-01-01
  • 2012-06-17
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多