首页 > 解决方案 > 如何在屏幕上不出现提示的情况下获得快速的 UIButton 来执行电话呼叫

问题描述

我正在尝试创建一个简单的应用程序,以帮助有视力障碍的 iPad 上的朋友。我的应用程序会在收到电话号码字符串后显示自定义提示屏幕(而不是 iOS 默认版本 - 见下图)。单击绿色呼叫按钮将在她共享的 iPhone 上拨号而无需进一步提示。

自定义全屏 iPad 提示默认 iPad 提示屏幕

我正在使用 tel:// 将号码传递给应用程序。然后,我希望自定义提示屏幕启动电话应用程序以在没有进一步提示屏幕的情况下进行拨号。

在一个 YouTube 视频中,我看到开发人员在一个 swift 应用程序中创建了一个按钮,该按钮在没有提示的情况下开始拨号。该按钮的代码如下所示:

@IBAction func MakeCall(sender: AnyObject) {
        var url:NSURL = NSURL(string: "tel://555-555-5555”)!
               UIApplication.sharedApplication().openURL(url)
    }

但是,当我尝试在 Xcode 11 中准确创建该操作时,它显示某些项目已被弃用。我能够将其调整为此(见下文),但它不会直接拨号而是发出提示。

@IBAction func MakeCall(_ sender: UIButton) {
         var number = URL(string: "tel://555-555-5555”)!
               UIApplication.shared.open(number)
    }

所以我的问题是:

  1. 有人可以为我提供一个在没有提示的情况下触发呼叫的正确代码示例吗?

  2. 在 swift 应用程序中是否不再有任何编码可以启动电话应用程序以在没有提示的情况下进行呼叫?

  3. 如果上面的第2个是这样的话!如何根据我的需要编辑默认的 iOS 提示屏幕(增加按钮的大小、更改按钮的颜色等),或者创建我自己的提示屏幕来替换默认的 iOS 版本。

需要明确的是,如果编码允许 swift 在没有提示的情况下进行拨号,我的应用程序仍将使用提示屏幕......我将在 swift 代码操作拨号之前简单地显示我的自定义提示屏幕。

我希望苹果没有剥夺应用程序通过显式编码直接拨号的能力。因为如有必要,应用程序有合法要求这样做。

任何可以帮助我解决这个问题的答案将不胜感激。

标记

标签: iosswiftxcodephone-call

解决方案


推荐阅读