使用 WebKit 防止导航

Aco*_*oop 1 webkit ios swift

我想阻止用户单击 WebKit Web 视图中的链接(或带有链接的按钮),从而实际上阻止导航。看来这可以通过 UIWebView 实现。我如何使用 WKView 来实现这一点?

谢谢。

Glo*_*del 5

可以通过多种方式来防止这种类型的操作,并且在很大程度上取决于您想要如何防止它。

最简单的方法是告诉 WKWebView 在所有情况下停止加载,但初始加载除外

var isInitialLoad = true

func webView(webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {

    if self.isInitialLoad {
        self.isInitialLoad = false
    } else {
        webView.stopLoading()
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,以这种方式执行此操作会导致您触发 webView(webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: NSError) 其中 error.code = -999

您可以使用evaluateJavascript() 查找页面上的所有锚标记/按钮,并通过javascript 禁用/处理它们。

无论哪种方式,您都可以在这里找到可以直接对 webview 执行的操作:

https://developer.apple.com/library/ios/documentation/WebKit/Reference/WKWebView_Ref/index.html#//apple_ref/occ/cl/WKWebView