如果文本是 URL SwiftUI,如何突出显示并可点击

Sam*_*Sam 1 url text highlight swift swiftui

如果文本在聊天屏幕中包含 URL,是否有任何方法可以突出显示文本并可单击

发件人用户代码:-

  import SwiftUI
  struct TextHighlightURL: View {
  var body: some View {
    HStack(alignment: .bottom){
        Spacer()
        Text("2:22 PM").font(.system(size: 10))
            .foregroundColor(.gray)
        HStack {
            Text("www.google.com")
                .foregroundColor(.white)
                .multilineTextAlignment(.trailing)
                .padding(10)
          }
          .background(Color.init("DTR-ChatSendrColor"))
          .cornerRadius(10.0)
         }.padding(.vertical,5)
         .padding()
      }
  }
Run Code Online (Sandbox Code Playgroud)

输出:-

截屏

截屏

接收者用户代码:-

struct SenderReciverUI1: View {
var body: some View {
    Group {
        HStack(alignment: .bottom){
            VStack(alignment: .leading,spacing:5) {
                HStack(alignment: .bottom) {
                    Text("www.google.com")
                        .foregroundColor(.white)
                        .padding(10)
                        .cornerRadius(10.0)
                   }
              }
             Spacer()
        }.padding(.vertical,5)
        .padding()
       }
     }
 }
Run Code Online (Sandbox Code Playgroud)

截屏

我的目标:-

截屏

有人可以向我解释一下,如果发件人发送链接并且接收者收到链接,则如何从两侧显示突出显示文本,如果文本包含 URL,则它会自动突出显示并且可单击,我已尝试按上述方式实现,但还没有结果。

任何帮助将不胜感激。

提前致谢。

小智 5

当您调用 时Text(myString),SwiftUI 实际上使用Text<S>(_ content: S) where S : StringProtocol初始化程序。要突出显示链接并使它们可单击,您可以强制使用Text(_:tableName:bundle:comment:)具有此属性的初始化程序。

例子:

let myStringWithLink = "My link: https://stackoverflow.com"
Text(LocalizedStringKey(myStringWithLink))
Run Code Online (Sandbox Code Playgroud)