当您使用 Markdown(下面的示例)并点击链接时,Swift 会自动关闭我的应用程序并在 Safari 中打开链接,但我想在我的应用程序内的 Web 视图中打开链接,这可能吗?
Text("Hello! Example of a markdown with a link [example](https://example.com)")
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
})
The OpenURLAction
必须返回一个类型的值OpenURLAction.Result
- 这里,.handled
告诉系统您已经自己处理了 URL,因此操作系统无需执行任何其他操作。
您还可以包含某些逻辑,例如,如果 URL 指向特定主机,您可以处理它们,但其他所有内容都应该在 Safari 中打开;在这种情况下,你会返回.handled
对于您负责的网址,以及.systemAction
对于应使用默认行为的任何 URL。
其他返回类型包括.discarded
告诉应用程序忽略链接上的点击,以及一个版本.systemAction
它允许您重新定义在 Safari 中打开的链接。不过,我认为这都不适合您的用例。
这篇文章发表在 Fivestars.blog 上更详细的内容。另请查看openURL and OpenURLAction文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)