как использовать didFailProvisionalNavigation swiftUI
Я новичок в SwiftUI. Я стараюсь, чтобы, когда мой WKWebview не имел возможности загрузить, записал пользователя на страницу с ошибкой.
Я проводил некоторые исследования, пытаясь понять, как это сделать. Я обнаружил, что мне нужно использовать WKNavigationDelegate с методом webView:didFailProvisionalNavigation:withError: если бы вы знали, как его настроить, это очень помогло бы мне, я не мог найти любой пример использования спасибо ВСЕМ
// Мой класс WebView
struct Webview : UIViewRepresentable,WKNavigationDelegate {
func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
}
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)
}
// page precedente
func goBack(){
webview?.goBack()
}
// retour en avant
func goForward(){
webview?.goForward()
}
// recharg
func goReload() {
webview?.reload()
}
Мой вид
struct ContentView: View {
let webview = Webview(web: nil, req: URLRequest(url: URL(string: "https://fr.yahoo.com")!))
var body: some View {
NavigationView {
VStack{
webview
HStack {
Button(action: {
self.webview.goBack()
}, label: {
Image(systemName: "backward.end")
.font(.system(size: 30))
.foregroundColor(.blue)
})
Spacer().frame(width: 50)
Button(action: {
self.webview.goForward()
}, label: {
Image(systemName: "forward.end")
.font(.system(size: 30))
.foregroundColor(.blue)
})
Spacer(minLength:2)
Button(action: {
// self.webview.goReload()
}, label: {
Image(systemName: "goforward")
.font(.system(size: 30))
.foregroundColor(.blue)
})
}
.padding()
}.navigationBarHidden(true)
}
}
}