【发布时间】:2020-04-28 10:43:30
【问题描述】:
我想在点击按钮时通过新视图显示本地 PDF 文件。 我尝试使用 UIViewRepresentable WebView 执行此操作,但它不起作用(我仅通过 NavigationList 使用 WebView)。
我留下了我的代码,但如果 WebView 不是最佳选择,请随时提出更好的选择。
按钮视图
import SwiftUI
struct ResumeView: View {
let sfSymbol: String
let text: String
let fileUrl = Bundle.main.path(forResource: "Resume", ofType: "pdf")
var body: some View {
RoundedRectangle(cornerRadius: 25)
.fill(Color.white)
.frame(height: 50.0)
.overlay(
HStack {
Image(systemName: sfSymbol)
.foregroundColor(.init(red: 0.20, green: 0.33, blue: 0.55, opacity: 1.00))
Button(action: {
WebView(urlString: self.fileUrl)
}) {
Text(text)
.foregroundColor(.black)
}
})
}
}
网络视图
import Foundation
import SwiftUI
import WebKit
struct WebView: UIViewRepresentable {
let urlString: String?
func makeUIView(context: Context) -> WKWebView {
return WKWebView()
}
func updateUIView(_ uiView: WKWebView, context: UIViewRepresentableContext<WebView>) {
if let safeUrlString = urlString {
if let url = URL(string: safeUrlString) {
let request = URLRequest(url: url)
uiView.load(request)
}
}
}
}
【问题讨论】:
-
Slaine06,显然您的问题的答案对您不起作用,但您自己设法提出了解决方案(使用工作表)。对于我们这些正在为“如何使用 SwiftUI 按钮打开本地 PDF 文件?”而苦苦挣扎的人,您愿意分享您的解决方案的代码吗?在 StackOverflow 上,您可以回答自己的问题 - 为面临相同问题的未来开发人员提供帮助。谢谢。
标签: ios swift pdf webview swiftui