如何使用didFailProvisionalNavigation swiftUI

时间:2019-12-20 08:53:36

标签: ios swiftui wkwebview didfailwitherror wknavigationdelegate

我是SwiftUI的初学者,我尝试确保当我的WKWebview无法加载时,将用户写入错误页面。

我一直在做一些研究,试图弄清楚该怎么做,我发现我需要使用 使用方法WebView:didFailProvisionalNavigation:withError的WKNavigationDelegate: 如果您知道如何设置它,将对我有很大帮助,我找不到任何使用示例 谢谢大家

//我的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 个答案:

没有答案