dfd спасибо, что указали мне правильный путь, ваш ответ нуждался в небольшой модификации, потому что добавление webview в качестве var к struct означает, что мне нужно было установить для него значение при его использовании, поэтому мне также пришлось добавитьпользовательский метод инициализации.В любом случае, вот код, который работает.
Структура веб-просмотра
import SwiftUI
import WebKit
struct Webview : UIViewRepresentable {
let request: URLRequest
var webview: WKWebView?
init(web: WKWebView?, req: URLRequest) {
self.webview = WKWebView()
self.request = req
}
func makeUIView(context: Context) -> WKWebView {
return webview!
}
func updateUIView(_ uiView: WKWebView, context: Context) {
uiView.load(request)
}
func goBack(){
webview?.goBack()
}
func goForward(){
webview?.goForward()
}
}
, а вот структура, использующая веб-просмотр и добавление кнопок вверху
import SwiftUI
struct FullWebView : View {
let webview = Webview(web: nil, req: URLRequest(url: URL(string: "https://www.apple.com")!))
var body: some View {
VStack{
HStack{
Button(action: {
//do something
self.webview.goBack()
}){
Text("back")
}
Spacer()
Button(action: {
//do something
self.webview.goForward()
}){
Text("forward")
}
}
webview
}
}
}