как использовать 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)


    }
}

}

0 ответов

Другие вопросы по тегам