Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WKWebview: Disable interaction and clicks on links

Is there a way to disable interactions on a webview? So that the user can not go any further than the webview that is loaded?

EDIT: Disabling UserInteractions is not a solution because the website still has to be scrollable.

like image 820
Secondwave Avatar asked Apr 12 '17 10:04

Secondwave


1 Answers

First, you have to give the delegate to your webkit then add below code. Swift 5.0

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    Activity.stopAnimating()
    let javascriptStyle = "var css = '*{-webkit-touch-callout:none;-webkit-user-select:none}'; var head = document.head || document.getElementsByTagName('head')[0]; var style = document.createElement('style'); style.type = 'text/css'; style.appendChild(document.createTextNode(css)); head.appendChild(style);"
    webView.evaluateJavaScript(javascriptStyle, completionHandler: nil)
}

What this code will do, we add programmatically css that will disable interaction in webview

like image 75
Chirag Kalathiya Avatar answered Nov 16 '22 02:11

Chirag Kalathiya