【问题标题】:SwiftUI: How do I make a button open a URL in safari?SwiftUI:如何让按钮在 safari 中打开 URL?
【发布时间】:2020-02-26 20:17:17
【问题描述】:

我想在我的应用程序中添加一个按钮,该按钮将打开 safari 和一个特定的 URL 地址。我该怎么做呢? UIApplication.sharedApplication 在 SwiftUI 中似乎不起作用。

这是我在这里的第一个问题。如果我做错了什么请反馈????

【问题讨论】:

  • UIApplication.shared.open(url 控制台中的内容是什么

标签: swift url button swiftui


【解决方案1】:

如果您使用的是 SceneDelegate,您可以使用以下方式处理 URL 地址:

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {

    guard let url = URLContexts.first?.url else {
        return
    }

    //Handle URL here
}

从那里您可以像往常一样调用 openURL:

UIApplication.shared.open(url, options: [:], completionHandler: nil)

【讨论】:

  • 谢谢,如何从视图按钮或视图模型函数中触发 SceneDelegate 方法?
【解决方案2】:

iOS 14.0+

使用Link

Link("Some label", destination: URL(string: "https://www.mylink.com")!)

旧版本

Button(action: {
    if let url = URL(string: "https://www.mylink.com") {
       UIApplication.shared.open(url)
    }
}) {
    Text("Some label")
}

【讨论】:

  • 您能否澄清一下:iOS14。你的意思是iOS≦13?
  • 在 iOS 13 和 14 上的工作就像一个魅力。谢谢伙计!
【解决方案3】:

这可以通过 SwiftUI 的 Link: https://developer.apple.com/documentation/swiftui/link 来完成。

【讨论】:

  • 仅当您使用 iOS 14 时。
【解决方案4】:

在 SwiftUI 中,您可以使用 Link。例如:

Link("Link Text", destination: URL(string: "https://www.example.com/page.html")!)

【讨论】:

  • 仅当您使用 iOS 14 时。
猜你喜欢
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 2022-11-11
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多