【问题标题】:Swift How do I get the dialer to open with phone number displayed? [closed]Swift 如何让拨号器打开并显示电话号码? [关闭]
【发布时间】:2020-10-16 04:28:45
【问题描述】:

我不需要拨打电话号码,我只需要打开拨号器并显示已显示的电话号码。我应该打开什么UIApplication.shared 来实现这一点?

我的问题与this 类似,但我似乎没有为 ios 找到任何替代方案。

【问题讨论】:

    标签: ios swift phone-number


    【解决方案1】:

    使用这个:

    let phoneNumber = "+123123123"
    let numberUrl = URL(string: "tel://\(phoneNumber)")!
    if UIApplication.shared.canOpenURL(numberUrl) {
        UIApplication.shared.open(numberUrl)
    }
    

    相关链接:

    1. https://developer.apple.com/library/archive/releasenotes/General/RN-iOSSDK-10.3/
    2. https://developer.apple.com/documentation/uikit/uiapplication/1648685-open

    【讨论】:

    • 不是打开拨号器而是显示对话框直接拨打号码
    • 是的,这是 ios 本机行为,您无法更改。 iOS 要求用户同意知道他是否想拨打该号码。你应该知道 ios 和 android 的工作方式不同。
    • 意思是我无法在ios中打开拨号器?如果我是对的,您能否给我该解释的链接,以便我可以在我的客户中清楚地解释它?因为他们希望该功能出现在他们的应用中。
    • 是的,除非 Apple 允许,否则任何人都不能这样做,这不太可能。添加了相关链接。
    【解决方案2】:

    您无法在 iOS 的电话应用中打开拨号器/键盘。或者,您可以在视图控制器中设计自己的键盘,为按键添加音调并收集号码。获得号码后,请使用以下方式拨打电话:

    func call() {
    
        let app = UIApplication.shared
    
        guard let number = URL(string: "tel://" + "1234567890"), app.canOpenURL(number) else {
            return
        }
        app.openURL(number)
    }
    

    【讨论】:

    • 第一:那个app.openURL已经被弃用了,改成app.open,第二:它不是打开拨号器而是显示一个对话框直接拨打号码,这不是我的答案正在寻找。
    猜你喜欢
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2012-04-25
    • 1970-01-01
    • 2020-10-31
    • 2016-08-11
    相关资源
    最近更新 更多