我已将打电话的代码从Objective-C转换为Swift,但在Objective-C中,我们可以设置要打开的URL类型(例如电话、短信、网络),如下所示:

@"tel:xx"
@"mailto:info@example.es"
@"http://stackoverflow.com"
@"sms:768number"

Swift中的代码是:

UIApplication.sharedApplication().openURL(NSURL(string : "9809088798")

我读到的文章中没有发布任何tel:的scheme参数,但我不知道Swift是否能检测到该字符串是否用于打电话、发送邮箱或打开网站.或者我可以写:

(string : "tel//:9809088798")

?

推荐答案

我很确定你想要:

UIApplication.sharedApplication().openURL(NSURL(string: "tel://9809088798")!)

(请注意,在你的问题文本中,你输入了tel//:,而不是tel://).

NSURL的字符串init需要一个格式良好的URL.它不会把一堆数字变成一个电话号码.你有时会在UIWebView中看到电话号码检测,但这是在比NSURL更高的级别上完成的.

编辑:添加!根据下面的 comments

Swift相关问答推荐

计算Vision OS相机与Vision OS中3D模型之间的距离

如何避免使用DispatchSemaphores时线程爆炸?

如何返回JSON数据?

";async let和";async之间的差异让我们等待";

UIImage和UIimage.pngData返回两个不同的图像

在表单中对齐文本框

应该在ViewModel还是ViewController中使用"Task {}"?

覆盖一个子元素的 HStack 对齐方式

从 iPhone 中的安全飞地获取真正的随机数?

如何为等待函数调用添加超时

Swift并发:为什么不在其他后台线程上执行任务

自定义选取器的出现导致其他视图重新排列

AVPlayer 在 iOS 15.4 中寻求 completionHandler 返回 false

当我必须在 Swift 中的类、 struct 和枚举之间进行 Select 时,我应该如何推理?

无法使用锚激活约束

将强制向下转换视为可选将永远不会产生零

Type 应该采用什么协议来让泛型函数将任何数字类型作为 Swift 中的参数?

如何从 UITableViewCell 类中引用 UITableViewController?

强制打开已在同一行代码中 Select 性访问的变量是否安全?

来自 ObservableObject 的绑定值