电话号码功能错误canOpenURL:网址失败:“tel:// 0478733797” - 错误:“此应用不允许查询方案电话”

时间:2018-03-19 04:12:36

标签: ios swift

我在日志中收到此错误?

虽然我在模拟器上运行这个,但这在测试阶段是否重要?

  

canOpenURL:网址失败:“tel:// 0478733797” - 错误:“此应用不允许查询方案电话”   按下callNumber按钮

这是我的功能。

字符串是“0478733797”

func callNumber(phoneNumber:String) {
    if let phoneCallURL = URL(string: "tel://\(phoneNumber)") {
        let application:UIApplication = UIApplication.shared
        if (application.canOpenURL(phoneCallURL)) {
            application.open(phoneCallURL, options: [:], completionHandler: nil)

        }
    }
}

2 个答案:

答案 0 :(得分:0)

您遇到的错误描述您未允许您的应用打开查询方案。要解决这个问题,您应该在info.plist中添加以下权限

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

设备上运行您的应用程序而不是模拟器

答案 1 :(得分:0)

要拨打电话,您只需要这样做:

let urlSchema = "tel:"
let numberToCall = "0478733797"
if let numberToCallURL = URL(string: "\(urlSchema)\(numberToCall)")
{
    if UIApplication.shared.canOpenURL(numberToCallURL)
    {
        UIApplication.shared.openURL(numberToCallURL)
    }
}

只有您使用URL创建的tel:格式不正确。

无需向Info.plist添加任何内容。此外,iOS Simulator不支持通话。因此,请尝试在实际设备上运行它。

如果您仍然遇到任何问题,请告诉我。快乐的编码..