MarkdownWebView
是一个性能出色的 SwiftUI 视图,用于渲染 Markdown 内容。
我说它出色是因为它底层的视图是 WKWebView
,但包含大量 MarkdownWebView
的 SwiftUI 滚动视图仍然可以平滑滚动。使用原生 SwiftUI 视图构建的类似视图没有这种性能(希望以后会有)。
视图的高度始终等于内容的高度。
将此包添加为依赖项。
请参阅文章 “将包依赖项添加到您的应用” 以了解更多信息。
import SwiftUI
import MarkdownWebView
struct ContentView: View {
@State private var markdownContent = "# Hello World"
var body: some View {
NavigationStack {
MarkdownWebView(markdownContent)
}
}
}
该视图带有一个默认样式(CSS 文件),适用于许多用例。
您还可以通过在初始化程序中设置 customStylesheet
参数来提供自己的样式表。
import SwiftUI
import MarkdownWebView
struct ContentView: View {
@State private var markdownContent = "# Hello World"
private let stylesheet: String? = try? .init(contentsOf: Bundle.main.url(forResource: "markdown", withExtension: "css")!)
var body: some View {
NavigationStack {
MarkdownWebView(markdownContent, customStylesheet: stylesheet)
}
}
}
默认情况下,该视图使用默认浏览器打开链接。
您可以通过在初始化程序中设置 onLinkActivation
参数来自己处理链接激活。
import SwiftUI
import MarkdownWebView
struct ContentView: View {
@State private var markdownContent = "# Hello apple.com"
var body: some View {
NavigationStack {
MarkdownWebView(markdownContent)
.onLinkActivation { url in
print(url)
}
}
}
}
底层 Web 视图加载一个 HTML 字符串。 要使该包在 macOS 应用程序中工作,请启用“Outgoing Connections (Client)”功能。
该软件包的部分内容可能使用以下受版权保护的材料,特此确认其使用。