首页 > 解决方案 > 如何在 SwiftUI 中创建可点击的 url/电话号码

问题描述

我想在 SwiftUI 文本(或任何视图)中显示电话号码,然后使其可点击,以便打开“电话”。

有没有办法用 SwiftUI 做到这一点,或者我应该尝试在 SwiftUI 中包装一个 UITextView 并用 NSAttributed 字符串等老式方式来做?

我已阅读 SwiftUI 中的 Text 文档,但找不到任何有关如何执行此操作的信息。目前正在尝试在 Xcode 11 beta 5 中执行此操作。

我在 SwiftUI.h 的 SwiftUI API 中搜索了“文本”

我还搜索了 stackoverflow [swiftui] 和 google 的查询,例如“使电话号码/url 可点击”、“可点击的链接/url swiftUI”等。

Text("123-456-7890")
    .onTapGesture {
    // do something here
}

(文本将是日本电话号码)

标签: swiftui

解决方案


使用 iOS 14 / Xcode 12.0 测试版 5

将 SwiftUI 中的新链接功能用于电话和电子邮件链接。

    // Link that will open Safari on iOS devices
    Link("Apple", destination: URL(string: "https://www.apple.com")!)
    
    //  Clickable telphone number
    Link("(800)555-1212", destination: URL(string: "tel:8005551212")!)

    //  Clickable Email Address
    Link("apple@me.com", destination: URL(string: "mailto:apple@me.com")!)
    

推荐阅读