当您使用 Markdown(下面的示例)并点击链接时,Swift 会自动关闭我的应用程序并在 Safari 中打开链接,但我想在我的应用程序内的 Web 视图中打开链接,这可能吗?
Text("Hello! Example of a markdown with a link [example](https://example.com)")
Run Code Online (Sandbox Code Playgroud)
Sco*_*man 14
SwiftUI 环境包含一个 URL 处理程序,默认情况下,它会在 Safari 中打开链接,但您可以提供自己的处理程序来覆盖它。
Text("Hello! Example of a markdown with a link [example](https://example.com)")
.environment(\.openURL, OpenURLAction { url in
// ... set state that will cause your web view to be loaded...
return .handled
})
Run Code Online (Sandbox Code Playgroud)
必须OpenURLAction返回一个类型的值OpenURLAction.Result- 在这里,.handled告诉系统您已经自己处理了 URL,因此操作系统不必执行任何其他操作。
您还可以包含某些逻辑,例如,如果 URL 指向特定主机,您可以处理它们,但其他所有内容都应该在 Safari 中打开;在这种情况下,您将返回.handled您负责的 URL 以及.systemAction应使用默认行为的任何 URL。
其他返回类型包括.discarded告诉应用程序忽略链接上的点击,以及.systemAction允许您重新定义在 Safari 中打开的链接的版本。不过,我认为这都不适合您的用例。
Fivestars.blog 上的这篇文章提供了更多详细信息。另请查看openURL和OpenURLAction文档。
| 归档时间: |
|
| 查看次数: |
1879 次 |
| 最近记录: |